공든탑앱 열기

접속 사용자 확인

리눅스마스터 2급 · 기본 명령어 · 약 8분

쉽게 말하면

지금 누가 이 컴퓨터에 접속해 있는지, 예전에 누가 언제 들어왔는지, 누가 비밀번호를 틀렸는지 확인하는 명령들이에요. 건물 출입 기록을 보는 것과 같아요.

시험용 정의

지금 접속한 사용자와 과거 로그인 기록을 보는 명령들이다. 현재 접속은 who, w, users, 기록은 last, lastb, lastlog, 나 자신은 whoami, id.

비유로 이해하기

건물 출입 관리다. who는 지금 건물 안에 있는 사람, last는 출입 기록부, lastb는 문 앞에서 비밀번호를 틀린 기록이다.

자세히

명령 정리

명령보여 주는 것정보 출처
who현재 접속한 사용자, 터미널, 로그인 시각/var/run/utmp
wwho + 무엇을 하는지, 부하utmp
users접속한 사용자 이름만 한 줄utmp
whoami지금 내가 누구로 명령을 실행 중인지 (유효 사용자)
who am i처음 로그인한 나 (su 해도 원래 사용자)utmp
last로그인·로그아웃·재부팅 기록 (last reboot)/var/log/wtmp
lastb실패한 로그인 기록 (root만)/var/log/btmp
lastlog사용자별 마지막 로그인/var/log/lastlog

기록 파일은 어떻게 다른가

로그인 정보는 사람이 읽는 텍스트가 아니라 바이너리 파일에 쌓인다. 그래서 cat으로 열지 않고 각 전용 명령으로 본다.

  • utmp(/var/run/utmp): 지금 로그인해 있는 사용자 목록. 로그아웃하면 지워진다 → who, w, users
  • wtmp(/var/log/wtmp): 로그인·로그아웃·재부팅의 누적 기록 → last
  • btmp(/var/log/btmp): 실패한 로그인 시도 기록. 무차별 대입 공격 흔적을 볼 때 쓴다 → lastb
  • lastlog(/var/log/lastlog): 사용자마다 마지막 로그인 한 건 → lastlog

w 첫 줄의 load average는 최근 1분·5분·15분 동안 CPU를 기다리거나 쓰던 프로세스 수의 평균이다. CPU 코어 수보다 크면 밀려 있다는 뜻이다.

메시지 보내기

write kim: 접속한 kim의 터미널에 메시지. wall: 접속한 모든 사용자에게 방송. mesg n: 나에게 오는 메시지 거부.

시험에 이렇게 나와요

1차 출제기준 · 공개 기출 없음

확인 문제

Q1. 서버에 누군가 비밀번호를 여러 번 틀리며 로그인을 시도한 흔적을 보고 싶다. 알맞은 명령은?

  1. last
  2. w
  3. lastb
  4. who
정답 보기

3번 lastb

lastb는 실패한 로그인 기록(/var/log/btmp)을 보여 준다. last는 성공한 로그인·재부팅 기록(/var/log/wtmp), who·w는 지금 접속한 사용자다.

Q2. 시스템의 재부팅 기록을 확인하는 명령은?

  1. last reboot
  2. uptime -r
  3. who -r
  4. lastb reboot
정답 보기

1번 last reboot

last reboot (wtmp의 재부팅 항목).

Q3. last 명령이 읽는 로그 파일은?

  1. /var/log/btmp
  2. /var/log/secure
  3. /var/run/utmp
  4. /var/log/wtmp
정답 보기

4번 /var/log/wtmp

wtmp. 실패는 btmp, 현재 접속은 utmp.

Q4. 현재 접속한 사용자와 그들이 실행 중인 작업까지 보여 주는 명령은?

  1. users
  2. id
  3. w
  4. who
정답 보기

3번 w

w다. 누가 접속했는지와 각자 무엇을 실행 중인지까지 보여 준다. who는 접속한 사용자만 보여 준다.

헷갈리기 쉬운 O·X

whoami와 who am i는 su로 사용자를 바꾼 뒤에도 항상 같은 결과를 낸다.

정답 보기

X whoami는 현재 유효 사용자, who am i는 처음 로그인한 사용자.

lastb는 로그인에 실패한 기록을 보여 준다.

정답 보기

O 맞는 설명이다.

함께 보면 좋은 개념