who — 로그인 사용자 확인
Linux / 서버 로그 기록 및 분석 / who.html
현재 시스템에 로그인해 있는 사용자와 접속 정보를 보여주는 명령어.
기본 정보
| 명령어 이름 | who |
|---|---|
| 한 줄 소개 | 현재 시스템에 로그인해 있는 사용자와 접속 정보를 보여주는 명령어. |
| 제공 | GNU coreutils |
| 공식 문서 | https://man7.org/linux/man-pages/man1/who.1.html |
| 지원 운영체제 | Linux, macOS, BSD, WSL |
| 설치 여부 | 기본 탑재 |
| 분류 | 리눅스 로그 (태그: 로그 확인·분석 (태그: who, 로그인, 세션, utmp)) |
이 명령어는 무엇인가?
who는 현재 로그인 세션 목록을 출력합니다. 사용자 이름, 터미널 장치, 로그인 시각, 원격 접속이면 출발지 주소가 함께 표시됩니다.
정보 출처는 /var/run/utmp이며 로그인·로그아웃 시 갱신됩니다. 따라서 지금 접속 중인 세션만 보이고 과거 기록은 남지 않습니다. 이력이 필요하면 last를 사용합니다.
어떤 문제를 해결하는가?
- 지금 서버에 누가 접속해 있는지 빠르게 확인할 때
- 원격 접속 출발지 IP로 이상 접근을 판단할 때
- 여러 터미널 세션이 어느 TTY를 쓰는지 확인할 때
- 점검·배포 전 동시 작업자를 파악할 때
주요 기능
세션 목록
기본 실행으로 사용자와 TTY, 시각을 보여줍니다.
- 활용 상황: 접속 현황을 한눈에 볼 때
- 얻는 결과: 누가 어디서 접속했는지 즉시 확인됩니다.
- 제한 사항: utmp를 갱신하지 않는 컨테이너에서는 비어 보일 수 있습니다.
부팅 시각
-b로 마지막 부팅 시각을 표시합니다.
- 활용 상황: 재부팅 여부를 확인할 때
- 얻는 결과: 가동 시간을 빠르게 가늠할 수 있습니다.
- 제한 사항: 시각대가 UTC일 수 있어 시간대 확인이 필요합니다.
간결한 출력
-q 또는 -H로 이름만, 또는 헤더와 함께 출력합니다.
- 활용 상황: 스크립트에서 사용자 목록만 필요할 때
- 얻는 결과: 파싱이 단순해집니다.
- 제한 사항: 이름에 공백이 있으면 구분이 모호해집니다.
설치 및 실행
설치 여부 확인
who --version
sudo apt install coreutils # Debian/Ubuntu sudo dnf install coreutils # Fedora
실제 사용 예제
기본 확인
현재 로그인 세션을 확인합니다.
who
간결한 목록
사용자 이름만 추려 봅니다.
who -q
마지막 부팅 시각
재부팅 시점을 확인합니다.
who -b