리눅스에서 로그인 사용자의 기록을 확인하는 방법을 알아봅니다. 만약 최근 가장 마지막에 접근한 사용자의 정보를 얻으려면 어떻게 할까요?

@ 참고사항
로그인 사용자 기록을 확인하는 경우는 언제일까요? 다양한 경우가 있겠지만 하나 예를들자면.. 만약 서버에 어떤 변경사항이 발견되었는데 누가 수정하였는지 명확하지 않은 경우에 사용자 정보를 확인해야할 수 있습니다.
# 리눅스 마지막 사용자의 접속 기록 확인하기, last
리눅스에서는 last 명령어를 사용하여 마지막에 접근한 사용자의 정보를 리스트로 확인할 수 있습니다. 만약 커맨드라인에 아래와 같이 last를 입력하면 다음과 같이 정보를 출력합니다.
> last
Username   Port       From               Latest
user123      pts/0     xxx.xxx.xxx.xxx    Thu Mar 14 08:10 - 08:10  (00:00)
ubuntu       pts/0     xxx.xxx.xxx.xxx    Thu Mar 7 08:04 - 09:07  (00:03)
testuser      pts/0     xxx.xxx.xxx.xxx    Thu Mar 7 04:24 - 05:26  (00:01)
user123      pts/0     xxx.xxx.xxx.xxx    Wed Feb 28 06:37 - 09:37  (00:00)
...

출력결과로 총 12개의 최근 방문자의 정보를 출력합니다. 이때 살펴보면 나타나는 정보는 다음과 같습니다.

- 최근 정속한 사용자 결과
- 사용자 ip 및 port 정보
- 접속 일시 및 현재 접속 여부


! 줄(Line) 개수 설정하기
last 명령시 몇 줄까지만 보여줄 지 선택할 수 있습니다. 이 때 -10 -5처럼 숫자를 사용하거나 -n 플래그를 사용하여 -n 10 처럼 사용할 수 있습니다. 만약 3줄만 표시할 경우 아래와 같습니다.
last -3
last -n 3

둘 다 동일하게 3줄 까지만 표시해줍니다.


! 원하는 사용자만 선택하여 확인하기
만약 확인하고 싶은 특정 사용자가 있는 경우 아래처럼 last 뒤에 사용자 이름을 입력합니다.
last userName


! 일정 시간 이 후의 접속 기록만 확인
원하는 시간 이후의 정보 역시 확인 가능합니다. 만약 특정 시간 이 후 접속 기록만 보려면? 이때는 t 옵션을 추가합니다.
last -t 20190315000000



# 접속 시도 및 접속한 사용자의 로그 보기
이번에는 접속한 유저 또는 접속에 실패했거나 시도했던 사용자 정보를 모두 확인하는 방법입니다. auth.log는 접속 관련 로그 파일로 더 많은 정보를 확인할 수 있습니다.

/var/log/auth.log

로그 파일의 정보가 많으므로 필터링 조건을 사용하는 것이 좋습니다. 만약 "root" 키워드를 포함하는 로그 정보만 출력하려면 아래와 같습니다.

! 특정 정보 포함하는 기록만 보기
cat /var/log/auth.log | grep "root"



# 모든 사용자의 접속 현황 확인하기, lastlog
또 다른 방법으로 모든 사용자의 마지막 접속기록을 확인할 수 있는 방법이 있습니다. 이 경우 lastlog를 사용합니다.

lastlog의 차이점은 화면에 모든 사용자의 정보를 출력하고 이들의 마지막 접근 정보를 출력하게 됩니다.
testtest         pts/0     xxx.xxx.xxx.xxx               Mon Mar 11 00:08:00 +0000 2019
user123                                                     **Never logged in**
ubuntu         pts/0     xxx.xxx.xxx.xxx               Mon Mar 18 13:20:12 +0000 2019
testuse                                                      **Never logged in**


여기까지 로그인한 유저 및 최근 로그인 정보와 로그를 확인하는 다양한 방법을 알아보았습니다.