[RHEL6] 계정관리 명령어들 6탄(lastlog, login, logname)
본문 바로가기
IT 이야기/Linux 명령어

[RHEL6] 계정관리 명령어들 6탄(lastlog, login, logname)

by 찬찬이 아빠 2019. 12. 31.
반응형
  16. lastlog(접속 로그 보기)

 1) 경로 : /usr/bin/lastlog

 2) 요약 : lastlog 파일을 분석하여 출력

 3) 사용 방법 : lastlog [옵션]

 4) 옵션

 -u 로그인명 : 지정한 로그인명의 lastlog 정보만 출력

 -t days : 지정한 날짜 단위 기간에 로그인한 정보만 출력

 

 5) 추가 설명

 lastlog 명령어는 /var/log/lastlog 로그 파일의 정보를 출력합니다. 이를 통해 사용자의 마지막 로그인 날짜, 호스트명, 포트 등을 볼 수 있습니다. 만약 로그 기록 중 출처를 알 수 없는 로그 기록이나 로그인을 허용하지 않은 사용자의 로그 기록이 있다면 크래킹의 흔적으로 볼수 있으므로 전체적인 시스템을 세밀하게 분석할 필요가 있습니다.

 

예) lastlog 명령어 수행

# lastlog

Username         Port     From             Latest
root             pts/1    10.0.2.2         Mon Dec  9 01:55:38 +0900 2019
bin                                        **Never logged in**
daemon                                     **Never logged in**
adm                                        **Never logged in**
lp                                         **Never logged in**
sync                                       **Never logged in**
shutdown                                   **Never logged in**
halt                                       **Never logged in**
mail                                       **Never logged in**
operator                                   **Never logged in**
games                                      **Never logged in**
ftp                                        **Never logged in**
nobody                                     **Never logged in**
systemd-network                            **Never logged in**
dbus                                       **Never logged in**
polkitd                                    **Never logged in**
libstoragemgmt                             **Never logged in**
colord                                     **Never logged in**
rpc                                        **Never logged in**
gluster                                    **Never logged in**
saslauth                                   **Never logged in**
abrt                                       **Never logged in**
setroubleshoot                             **Never logged in**
rtkit                                      **Never logged in**
radvd                                      **Never logged in**
chrony                                     **Never logged in**
qemu                                       **Never logged in**
unbound                                    **Never logged in**
tss                                        **Never logged in**
usbmuxd                                    **Never logged in**
geoclue                                    **Never logged in**
pulse                                      **Never logged in**
gdm              :0                        Thu Nov 28 00:48:28 +0900 2019
saned                                      **Never logged in**
rpcuser                                    **Never logged in**
nfsnobody                                  **Never logged in**
--- 이하 생략 ---

 

예) root 사용자 정보만 출력

# lastlog -u root
Username         Port     From             Latest
root             pts/1    10.0.2.2         Mon Dec  9 01:55:38 +0900 2019

 

예) 최근 7일 이내에 로그인 한 사용자 정보 출력

# lastlog -t 7
Username         Port     From             Latest
root             pts/1    10.0.2.2         Mon Dec  9 01:55:38 +0900 2019

 

 

 

  17. login(시스템 접속 명령어)

 1) 경로 : /bin/login

 2) 요약 : 시스템에 세션을 시작

 3) 사용 방법 : login [옵션][이름]

 4) 옵션

 -f user : 인증 절차를 마친 사용자는 인증 절차를 무시한다. 만일 user가 root라면 인증 절차를 거침

 -h hostname : 원격 로그인(telentd, rlogind)할 때 호스트명(hostname)을 입력

 -p : 이전의 환경을 기억하고, 동일한 환경으로 실행

 

 5) 추가 설명

 login 명령어는 시스템 접속을 위한 개인 설정 파일을 읽은 후 작업 환경을 설정합니다. 이 작업을 위해 일반적으로 다른 시스템에 접속할 때는 ssh 또는 telnet 명령어를 사용합니다. 

 

 <로그인 세션 절차>

 1. 리눅스는 초기 시스템을 시동할 때 init 프로세스로 설정 파일을 읽고, 실행에 필요한 모든 getty 명령어를 생성

 2. 일반적으로 가상 콘솔을 위한 가벼운 getty 프로그램으로 mingetty를 사용

 3. mingetty는 로그인 프로세스 실행을 위한 프로그램으로 터미널 회선 속도를 설정하고, 로그인 프롬프트를 실행

 4. 사용자가 접속을 시도하면 mingetty는 login 프로그램을 호출하고, 호출된 login 프로그램은 프롬프트에서 사용자명과 암호를 읽음

 5. 사용자 인증이 성공했다면 /etc/passwd 파일에 존재하는 쉘 환경을 확인하고, /etc/bashrc와 /etc/profile 파일을 읽음

 6. 사용자 홈 디렉터리의 .bashrc, .bash_profile 등의 파일도 읽은 후에 그 내용을 명령행에 출력

    명령행을 나타내는 기호는 #(root)과 $(사용자 권한)가 있음

 

  <참고사항>

/etc/passwd 파일을 이용하여 사용자 계정의 맨 앞줄에 '#'으로 주석처리를 하거나 /bin/bash를 /bin/false로 변경하면 사용자의 로그인을 제한할 수 있습니다. 또한 /etc/nologin 파일에 사용자를 추가하면 로그인을 막을 수 있습니다.

 

 /etc/securetty 파일은 root로 접근할 수 있는 터미널이 등록되어 있습니다. 터미널은 /dev/디바이스명을 생략한 터미널 이름이다. 만일 파일이 없다면 root는 모든 터미널에서 접속할 수 있습니다.

 

 

 

 

  18. logname(로그인 사용자 보기)

 1) 경로 : /usr/bin/logname

 2) 요약 : 로그인 한 사용자를 utmp 파일에서 찾아 출력

 3) 사용 방법 : logname [옵션]

 4) 옵션

 --help : 도움말 출력

 --version : 버전 정보 출력

 

 5) 추가 설명

 사용자가 로그인하면 시스템은 자동으로 터미널을 할당하고, 로그인 정보를 /var/run/utmp 파일에 저장합니다. 시스템 접속 중에 사용자를 변경하더라도 이미 로그인할 때에 할당된 사용자 정보는 변경되지 않습니다. logname 명령어는 시스템에 접속할 때 사용한 로그인 사용자를 출력합니다.

 

 로그인 후에 사용자를 변경하지 않는다면 logname, whoami, id의 출력 정보는 동일합니다.

# logname
root

# whoami
root

# id
uid=0(root) gid=0(root) groups=0(root), 1(bin), 2(daemon), 3(sys), 4(adm), 6(disk), 10(wheel)

 

 아래와 같이 root에서 park이라는 사용자로 변경하면 달라진 정보를 확인할 수 있습니다.

# su - park

# logname
root

# whoami
park

# id
uid=500(park) gid=500(park) groups=500(park)

 

 logname 명령어는 사용자를 변경하더라도 최초의 로그인 사용자명을 출력하고, whoami와 id 명령어는 변경된 사용자 정보를 출력합니다.

 

<참고사항>

whoami : 현재 시스템 사용자의 사용자명을 출력

id : 현재 시스템 사용자의 UID, GID, groups를 출력

반응형

댓글