강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

현재 시스템에 접속한 사용자를 확인하기(who, last reboot)

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

현재 시스템에 접속한 사용자를 확인하기(who, last reboot)

 

 

 

 

리눅스시스템에 현재접속해있는 사용자들이 누구인가를 확인하는 가장 기초적인 방법은who를 실행하는 것이다.

 

 

 

 , who는 현재 리눅스 시스템에 접속해있는 사용자들을 확인하는 명령어이다.

 

 

 

  , 현재 접속해 있는 사용자의 계정명, 터미널정보, 접속시간, 접속한 서버정보등을 확인한다.

 

 

 

 이 명령어와 유사한 명령어로는 w, whoami, id 그리고 “who am i”가 있다.

 

 

 

 

 

단순히 who명령어만을 알고 있는 것 보다는 관련명령어들과 함께 알아두는 것이 서버관리를 융통성있게 할 수 있고 인정받는 관리자가 되는 지름길이다.

 

 

 

  그리고 who명령어는 root관리자뿐 아니라 일반계정사용자도 사용이 가능하다는 점도 함께 알아두기 바란다.

 

 

 

 

 

먼저 가장 간단한 예를 보도록 하자. 위에서 설명한 바와같이 현재 서버에 접속한 사용자정보를 확인하려면 who명령어를 사용하면 된다.

 

 

 

  이번 예는 아무런 옵션도 사용하지 않은 who명령어의 결과를 출력하고 있다.

 

 

 

  , 아래의 예는 root사용자가 현재 접속한 사용자정보를 확인하기 위하여 who명령어를 실행한 결과를 나타낸 것이다.

 

 

 

 

 

[bible@sulinux ~]$ who

sspark   pts/1        2022-05-11 10:51 (192.168.0.244)

root     pts/2        2022-05-11 10:51 (192.168.0.244)

sspark   pts/3        2022-05-11 10:51 (sulinux.net)

bible    pts/0        2022-05-11 10:51 (sulinux.net)

[bible@sulinux ~]$

 

 

 

 

위의 결과를 보면 현재 서버에 접속한 사용자는 sspark, root, bible사용자가 각각 원격지에서 접속해있다는 것을 알 수 있다.

 

 

 

  참고로 위의 결과는 who명령어에서 -s옵션을 사용한 결과와 동일하다.

 

 

 

  ,  who명령어에서 -s옵션은 기본옵션으로 설정되어 있다.

 

 

 

 

 

who명령어 사용시에 -m옵션을 사용하면 현재 접속한 사용자의 로그인 계정정보를 확인할 수 있다.

 

 

 

  , “who -m”을 실행하면 로그인 계정명, 로그인 터미널, 접속시간, 접속한 서버 등의 정보를 결과로 보여준다.

 

 

 

 

 

아래의 예는 현재 서버에 접속한 root 계정의 로그인 정보를 확인하기 위하여 “who -m”명령어를 실행한 결과를 나타낸 것이다.

 

 

 

 

 

[root@sulinux ~]# who -m

root     pts/4        2022-05-11 10:52 (192.168.0.244)

[root@sulinux ~]#

 

 

 

 

, root로 접속한 사용자는 192.168.0.244호스트에서 원격접속하였다는 정보 및 접속시간 등을 확인할 수 있다.

 

 

 

 

 

이번에는 who명령어 사용시에 결과로 출력되는 각 필드의 제목을 함께 출력하기 위해 -H옵션을 사용한 예이다.

 

 

 

 , who명령어 사용시에 -H옵션을 함께 사용하면(주로 다른 옵션들과 함께 사용됨) 결과로 출력되는 각 필드의 제목을 출력해 준다.

 

 

 

 

 

아래의 예는 root사용자가 현재 접속한 계정 사용자들의 접속정보를 확인하기 위하여 “who -H”명령어를 실행한 결과이다.

 

 

 

 

 

[root@sulinux ~]# who -H

NAME     LINE         TIME             COMMENT

sspark   pts/1        2022-05-11 10:51 (192.168.0.244)

root     pts/2        2022-05-11 10:51 (192.168.0.244)

sspark   pts/3        2022-05-11 10:51 (sulinux.net)

bible    pts/0        2022-05-11 10:51 (sulinux.net)

root     pts/4        2022-05-11 10:52 (192.168.0.244)

[root@sulinux ~]#

 

 

 

 

위의 -H옵션을 사용한 결과로 NAME, LINE, TIME, COMMENT라는 필드의 제목들이 함께 출력된 것이다.

 

 

 

 다음 예를 계속보도록 하자.

 

현재 시스템에 접속한 사용자들이 로그인한 채로 아무런 작업을 하지않고 얼마나 있었는가를 나타내는 “idle time”정보를 확인하려면 who명령어에서 -u옵션을 사용하면 된다.

 

 

 

 

 

, 아래의 예는 “who -uH”명령어의 결과로 root가 실행한 것이다.

 

 

 

  그 결과로 볼 수 있는 각 행들의 4번째 필드들의 값들은 각 계정들의 “idle time”을 의미한다.

 

 

 

  이때 표시되는 형식은 시간:으로 표시되며 .()은 좀 전까지도 작업중이였음을 의미하며, old 24시간이상 idle time이 지속되었다는 것을 의미한다.

 

 

 

 

 

[root@sulinux ~]# who -uH

NAME     LINE         TIME             IDLE          PID COMMENT

sspark   pts/1        2022-05-11 10:5101:01        2044 (192.168.0.244)

root     pts/2        2022-05-11 10:5102:01        2097 (192.168.0.244)

sspark   pts/3        2022-05-11 10:5100:30        2137 (sulinux.net)

bible    pts/0        2022-05-11 10:5100:05        2174 (sulinux.net)

root     pts/4        2022-05-11 10:52   .          2213 (192.168.0.244)

[root@sulinux ~]#

 

 

 

 

, 위의 결과를 보면 sspark이라는 계정사용자는 192.168.0.244호스트에서  pts/1 터미널로 로그인하여 현재 1시간01분동안 아무런 작업없이 로그인한 채로 있다는 것을 알 수 있으며, 또한 bible사용자는 pts/0터미널로 로그인하여 5분동안 아무런 작업없이 로그인한 채로 있다는 것을 알 수 있다.

 

 

 

  그리고 pts/4터미널로 로그인한 root사용자의 4번째 필드에서 볼 수 있는 .()은 좀 전까지 서버작업을 하고 있었다는 것을 의미한다.

 

 

 

  그리고 만약 위의 결과에서 old라는 문자가 나왔다면 이것은 24시간이상 아무런 작업없이 로그인한 채로 있었다는 것을 각각 의미한다.

 

 

 

 

 

앞의 예를 보았듯이 who명령어에는 용도에 맞는 여러가지 옵션들이 있다.

 

 

 

  이들 옵션들은 모두 함께 사용이 가능하지만 -a옵션을 사용하면 -b, -d, --login, -p, -r, -t, -T, -u옵션을 모두 함께 사용한 것과 같은 로그인 사용자의 정보를 얻을 수 있다.

 

 

 

 

 

아래의 예는 현재 로그인한 사용자들의 가능한 많은 정보를 얻기 위하여 who명령어에 -aH옵션을 사용한 예이다.

 

 

 

 

 

[root@sulinux ~]# who -aH

NAME       LINE         TIME             IDLE          PID COMMENT  EXIT

                        2022-05-11 10:50               336 id=si    term=0 exit=0

           system boot  2022-05-11 10:50

           run-level 5  2022-05-11 10:50                   last=S

                        2022-05-11 10:51              1394 id=l5    term=0 exit=0

LOGIN      tty1         2022-05-11 10:51              1940 id=1

LOGIN      tty2         2022-05-11 10:51              1941 id=2

LOGIN      tty3         2022-05-11 10:51              1942 id=3

LOGIN      tty4         2022-05-11 10:51              1943 id=4

LOGIN      tty5         2022-05-11 10:51              1944 id=5

LOGIN      tty6         2022-05-11 10:51              1945 id=6

                        2022-05-11 10:51              1946 id=x

sspark   + pts/1        2022-05-11 10:5101:02        2044 (192.168.0.244)

root     + pts/2        2022-05-11 10:5102:02        2097 (192.168.0.244)

sspark   + pts/3        2022-05-11 10:5100:31        2137 (sulinux.net)

bible    + pts/0        2022-05-11 10:5100:06        2174 (sulinux.net)

root     + pts/4        2022-05-11 10:52   .          2213 (192.168.0.244)

[root@sulinux ~]#

 

 

 

위의 결과에서 보듯이 -aH옵션을 사용한 결과는 -b, -d, --login, -p, -r, -t, -T, -u옵션을 모두 사용한 것과 같은 로그인 사용자 정보를 얻을 수 있다.

 

 

 

 참고로 -a옵션은 --all옵션과 바꾸어 사용할 수 있다.

 

 

 

 

 

이번에는 시스템이 언제 마지막으로 부팅하였는가를 who명령어로 확인한 것이다.

 

 

 

 , who명령어에 -b옵션을 사용하면 최근 부팅정보를 확인할 수 있다.

 

 

 

 , “who -b”명령어를 실행하면 현재 시스템의 가장 최근에 부팅한 정보를 얻을 수 있다.

 

 

 

  아래의 예는 “who -b”명령을 실행한 결과로서 시스템의 마지막 부팅시간 정보를 확인하고 있는 것이다.

 

 

 

 

 

[root@sulinux ~]# who -bH

NAME     LINE         TIME                    PID COMMENT

         system boot  2022-05-11 10:50

[root@sulinux ~]#

 

 

 

 

, 위의 예에서 필자가 현재 사용하고 있는 시스템은 2009년 05 11 1050분에 부팅되어 현재까지 사용되고 있다는 것을 알 수가 있다.

 

 

 

 여기서 -b옵션은 --boot옵션과 동일하므로 바꾸어 사용하셔도 동일한 결과를 얻을 수 있다.

 

 

 

 

 

참고로 시스템의 부팅정보를 확인하시려면 last라는 명령어로도 확인이 가능하다.

 

 

 

  아래의 예는 필자가 사용하고 있는 또 다른 시스템에서 “last reboot”이라는 명령어를 이용하여 시스템 부팅정보를 확인하고 있는 것이다.

 

 

 

  “last reboot”이라고 하면 시스템 부팅정보들을 모두 확인하여 표시해 준다.

 

 

 

 

 

[root@RockyLinux01 ~]# last reboot

reboot   system boot  5.14.0-162.23.1. Wed Jun 21 10:04   still running

reboot   system boot  5.14.0-162.23.1. Tue Jun 20 10:57 - 15:00  (04:02)

reboot   system boot  5.14.0-162.23.1. Mon Jun 19 09:51 - 17:36  (07:45)

reboot   system boot  5.14.0-162.23.1. Mon Jun 19 09:30 - 17:36  (08:06)

reboot   system boot  5.14.0-162.23.1. Fri Jun 16 09:42 - 17:55  (08:12)

reboot   system boot  5.14.0-162.23.1. Thu Jun 15 10:43 - 17:32  (06:48)

reboot   system boot  5.14.0-162.23.1. Wed Jun 14 09:54 - 17:27  (07:32)

reboot   system boot  5.14.0-162.23.1. Tue Jun 13 08:59 - 17:10  (08:11)

reboot   system boot  5.14.0-162.23.1. Mon Jun 12 11:51 - 16:36  (04:45)

reboot   system boot  5.14.0-162.23.1. Mon Jun 12 09:45 - 16:36  (06:50)

reboot   system boot  5.14.0-162.23.1. Thu Jun  8 10:01 - 18:08  (08:06)

reboot   system boot  5.14.0-162.23.1. Mon Jun  5 10:23 - 17:08  (06:45)

reboot   system boot  5.14.0-162.23.1. Fri Jun  2 10:08 - 18:02  (07:53)

reboot   system boot  5.14.0-162.23.1. Thu Jun  1 11:08 - 17:54  (06:45)

 

wtmp begins Wed Apr 26 10:59:31 2023

[root@RockyLinux01 ~]#

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,045 명
  • 현재 강좌수 :  35,861 개
  • 현재 접속자 :  81 명