Linux 에서 현재 로그인한 사용자 확인 방법

LinuxBeginner
지금 연습하기

소개

이 랩에서는 현재 Linux 시스템에 로그인한 사용자를 확인하는 방법을 배우게 됩니다. 로그인한 사용자를 나열하는 who와 세션 및 활동에 대한 자세한 정보를 얻는 w와 같은 기본적인 명령어를 탐구할 것입니다.

이 랩을 마치면 Linux 시스템에서 활성 사용자를 빠르게 식별하고 /var/run/utmp에서 로그인 기록을 검사하는 방법을 포함하여 로그인 세션에 대한 기본 정보를 이해할 수 있습니다.

who 명령어로 로그인 사용자 목록 확인

이 단계에서는 who 명령어를 사용하여 현재 시스템에 로그인한 사용자를 나열하는 방법을 배우게 됩니다. 이는 시스템 관리자와 사용자 모두가 시스템에서 활성 상태인 사용자를 확인하기 위한 기본적인 명령어입니다.

who 명령어는 현재 로그인한 사용자에 대한 정보를 표시합니다. 이 정보에는 일반적으로 사용자 이름, 사용 중인 터미널 라인, 로그인 시간 및 로그인한 원격 호스트 (해당하는 경우) 가 포함됩니다.

실행해 봅시다. 아직 열려 있지 않다면 터미널을 엽니다. 데스크탑 왼쪽에서 Xfce 터미널 아이콘을 찾을 수 있습니다.

다음 명령을 입력하고 Enter 키를 누릅니다.

who

다음과 유사한 출력을 볼 수 있습니다.

labex    :0           <timestamp> (:0)

출력을 자세히 살펴보겠습니다.

  • labex: 이는 로그인한 사용자의 사용자 이름입니다. 이 LabEx 환경에서 기본 사용자는 labex입니다.
  • :0: 이는 사용 중인 터미널 라인 또는 디스플레이를 나타냅니다. :0은 일반적으로 기본 그래픽 디스플레이를 나타냅니다.
  • <timestamp>: 이는 사용자가 로그인한 날짜와 시간을 보여줍니다. 타임스탬프의 정확한 형식과 내용은 약간 다를 수 있습니다.
  • (:0): 이는 로그인 세션에 대한 추가 정보를 제공하며, 이 경우 디스플레이를 확인합니다.

who 명령어는 시스템을 사용하고 있는 사용자를 빠르게 확인하는 데 간단하지만 강력합니다. 사용자 활동을 이해하는 데 좋은 첫 번째 단계입니다.

기억하세요, 연습이 중요합니다! 명령어를 몇 번 실행하여 익숙해지세요.

다음 단계로 진행하려면 **계속하기 (Continue)**를 클릭하세요.

w 명령어로 사용자 세션 확인

이 단계에서는 현재 로그인한 사용자와 사용자가 수행 중인 작업에 대한 자세한 정보를 제공하는 w 명령어를 탐구합니다. who가 빠른 목록을 제공하는 반면, w는 사용자 세션과 관련된 시스템의 현재 활동에 대한 스냅샷을 제공합니다.

w 명령어는 누가 로그인했는지, 그리고 무엇을 하고 있는지 보여줍니다. 시스템 사용을 모니터링하고 각 사용자와 관련된 활성 프로세스를 식별하는 데 유용한 도구입니다.

터미널에서 w 명령어를 실행해 보겠습니다. 닫았다면 Xfce 터미널을 다시 엽니다.

다음 명령을 입력하고 Enter 키를 누릅니다.

w

다음과 유사한 출력을 볼 수 있습니다.

 <timestamp> up <uptime>,  <users> users,  load average: <load_avg>
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
labex    :0       :0               <login_time>   <idle_time>   <jcpu_time>   <pcpu_time> w

출력의 다양한 부분을 자세히 살펴보겠습니다.

  • 첫 번째 줄은 요약을 제공합니다.
    • <timestamp>: 현재 시간.
    • up <uptime>: 마지막 부팅 이후 시스템이 실행된 시간.
    • <users> users: 현재 로그인한 사용자 수.
    • load average: <load_avg>: 지난 1, 5, 15 분 동안의 시스템 부하 평균. 이는 실행을 대기 중인 프로세스의 평균 수를 나타냅니다.
  • 헤더 행 (USER, TTY, FROM, LOGIN@, IDLE, JCPU, PCPU, WHAT) 은 각 로그인한 사용자에 대해 이어지는 열을 설명합니다.
  • USER: 사용자 이름.
  • TTY: 사용자가 사용 중인 터미널 라인.
  • FROM: 사용자가 로그인한 원격 호스트 (해당하는 경우). 이와 같은 로컬 그래픽 세션의 경우 종종 :0을 표시합니다.
  • LOGIN@: 사용자가 로그인한 시간.
  • IDLE: 터미널의 유휴 시간.
  • JCPU: tty 에 연결된 모든 프로세스에서 사용한 시간.
  • PCPU: 현재 프로세스에서 사용한 시간.
  • WHAT: 사용자의 현재 프로세스에 대한 명령줄. 이 경우 방금 실행한 명령어가 w이므로 w를 표시합니다.

w 명령어는 who에 비해 더 동적인 보기를 제공하여 누가 로그인했는지뿐만 아니라 무엇을 활발하게 하고 있는지도 보여줍니다.

w 명령어를 사용해 보세요. 시스템 활동을 빠르게 평가하는 데 유용하다는 것을 알게 될 것입니다.

다음 단계로 이동하려면 **계속하기 (Continue)**를 클릭하세요.

/var/run/utmp 파일에서 로그인 기록 확인

이 단계에서는 /var/run/utmp 파일과 whow와 같은 명령어가 이 파일에서 정보를 얻는 방법에 대해 배우게 됩니다. 이 파일은 Linux 가 시스템에 로그인한 사용자를 추적하는 방식의 중요한 부분입니다.

/var/run/utmp 파일은 현재 시스템에 로그인한 사용자에 대한 정보를 포함하는 바이너리 파일입니다. 사용자가 로그인하고 로그아웃할 때마다 지속적으로 업데이트됩니다. who, w, users와 같은 명령어는 이 파일을 읽어 현재 로그인 정보를 표시합니다.

/var/run/utmp는 바이너리 파일이므로 텍스트 파일처럼 cat 또는 less와 같은 명령어로 내용을 간단하게 볼 수 없습니다. 그렇게 하면 읽을 수 없는 문자가 표시됩니다.

cat으로 내용을 보려고 시도하여 어떤 일이 발생하는지 확인해 보겠습니다 (그리고 왜 이렇게 하지 않는지 이해합니다).

cat /var/run/utmp

바이너리 파일의 경우 예상대로 많은 깨진 문자가 표시됩니다.

<binary_output>

사람이 읽을 수 있는 형식으로 /var/run/utmp의 내용을 읽으려면 이전 단계에서 사용한 who 또는 w와 같이 이 파일을 구문 분석하도록 설계된 명령어를 일반적으로 사용합니다.

/var/run/utmp의 내용을 특별히 읽고 표시하는 또 다른 명령어는 utmpdump입니다. 이 명령어는 파일의 원시 데이터를 디버깅하거나 검사하는 데 유용합니다.

utmpdump를 사용하여 /var/run/utmp의 내용을 보겠습니다.

utmpdump /var/run/utmp

각 로그인 세션에 대한 레코드를 표시하는 구조화되고 읽을 수 있는 출력을 볼 수 있습니다. 정확한 출력은 시스템의 현재 상태에 따라 다르지만 다음과 유사하게 표시됩니다.

Utmp dump of /var/run/utmp
[<type>] [<pid>] [<line>] [<id>] [<user>] [<host>] [<exit>] [<session>] [<tv_sec>] [<tv_usec>] [<addr_v6>]
...
[7] [ <pid> ] [ :0 ] [ :0 ] [ labex  ] [ :0 ] [  0,  0 ] [ <session_id> ] [ <timestamp> ] [ <usec> ] [ <ipv6_address> ]
...

출력은 항목 유형 (사용자 로그인 등), 프로세스 ID, 터미널 라인, 사용자 이름, 호스트, 로그인 시간 등을 포함하여 utmp 파일의 각 항목에 대한 다양한 필드를 보여줍니다.

/var/run/utmp를 이해하면 Linux 가 사용자 세션을 추적하는 방법과 whow와 같은 명령어가 내부적으로 작동하는 방식을 이해하는 데 도움이 됩니다.

이 랩을 완료하려면 **계속하기 (Continue)**를 클릭하세요.

요약

이 랩에서는 Linux 시스템에서 현재 로그인한 사용자를 확인하는 방법을 배웠습니다. 먼저 로그인한 사용자, 터미널, 로그인 시간 및 소스에 대한 기본 목록을 제공하는 who 명령어를 사용했습니다. 이 명령어는 활성 사용자를 빠르게 식별하기 위한 기본적인 도구입니다.

who 명령어에 이어 w 명령어를 탐구했습니다. w 명령어의 전체 세부 정보는 발췌 내용에 제공되지 않았지만, who에서 제공하는 단순한 목록을 넘어 로그인한 사용자와 현재 활동에 대한 더 자세한 정보를 제공하는 도구로 소개되었습니다.