본문 바로가기

CentOS/Study

[Study17]Linux 알면 좋은 유용한 관리 명령어 - groups / last / lastlog

반응형

groups 명령어

groups 명령어는 Unix 기반 시스템에서 사용자가 속한 그룹 이름 목록을 표시하는 데 사용됩니다.

또한 지정된 사용자 또는 사용자 그룹 이름 목록을 표시하는 데도 사용됩니다.

현재 로그인한 사용자의 그룹을 표시하려면, 인수 없이 groups 명령어를 입력하면 됩니다.

출력 결과는 사용자가 속한 그룹 이름 목록을 표시합니다.

특정 사용자의 그룹을 표시하려면, 사용자 이름 뒤에 groups 명령어를 입력합니다.

출력 결과는 지정된 사용자가 속한 그룹 이름 목록을 표시합니다.

여러 사용자의 그룹을 표시하려면, 사용자 이름을 공백으로 구분하여 groups 명령어를 입력합니다.

출력 결과는 각 사용자가 속한 그룹 이름 목록을 표시합니다.

cat /etc/group 명령어는 시스템에 선언된 모든 그룹들에 대한 기본적인 정보를 표시합니다.

그룹에 사용자를 추가하려면 adduser -G [그룹] [사용자] 명령어를 사용합니다.

이것이 Unix 기반 시스템에서 groups 명령어의 기본 내용입니다.

 

[명령어 형식]

# groups	/* 현재 사용중인 사용자의 그룹을 보여줍니다 */
# groups user1	/* user1이 속한 그룹을 보여줍니다 */
# groups user1 user2	/* user1과 user2가 속한 그룹을 보여줍니다 */

이 명령어는 현재 사용자의 그룹을 보여주는데 사용됩니다.

예를 들어, 만약 당신이 어떤 그룹에 속해있는지 알고 싶다면 "groups" 명령어를 입력하세요.

또한, "groups user1" 명령어를 사용하여 특정 사용자(user1)의 그룹을 확인할 수 있습니다.

마지막으로, "groups user1 user2" 명령을 사용하여 여러 사용자(user1, user2)의 그룹을 확인할 수 있습니다.

 

groups 명령어 사용법

groups 명령어는 Unix 기반 시스템에서 사용자가 속한 그룹 이름 목록을 표시하는 데 사용됩니다.

또한 지정된 사용자 또는 사용자 그룹 이름 목록을 표시하는 데도 사용됩니다.

현재 로그인한 사용자의 그룹을 표시하려면, 인수 없이 groups 명령어를 입력하면 됩니다.

출력 결과는 사용자가 속한 그룹 이름 목록을 표시합니다.

# groups
root

 

특정 사용자의 그룹을 표시하려면, 사용자 이름 뒤에 groups 명령어를 입력합니다.

출력 결과는 지정된 사용자가 속한 그룹 이름 목록을 표시합니다.

# groups 사용자이름

 

여러 사용자의 그룹을 표시하려면, 사용자 이름을 공백으로 구분하여 groups 명령어를 입력합니다.

출력 결과는 각 사용자가 속한 그룹 이름 목록을 표시합니다.

# groups 사용자이름1 사용자이름2

 

groups 명령어의 출력 결과는 사용자 또는 사용자 그룹이 속한 그룹 이름 목록을 표시합니다.

사용자 이름을 지정한 groups 명령어의 출력 결과는 해당 사용자가 속한 그룹 이름 목록을 표시합니다.

# groups fedora
fedora: fedora
# groups fedora root
fedora: fedora
root: root

 

cat /etc/group 명령어는 시스템에 선언된 모든 그룹들에 대한 기본적인 정보를 표시합니다.

# cat /etc/group
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin,adm
adm:x:4:root,adm,daemon
..... (생략) ....
sabayon:x:86:
fedora:x:500:
user01:x:501:

사용자를 그룹에 추가하려면 adduser -G [그룹] [사용자] 명령어를 사용합니다.

Unix 기반 시스템에서는 사용자 계정이 그룹에 가입하면 사용자가 속한 그룹 수가 16개를 초과하면 최초로 가입한 그룹에서 사용자가 제거됩니다.

그러나 리눅스 기반 시스템에서는 이러한 문제가 발생하지 않습니다.

이것이 Unix 기반 시스템에서 groups 명령어의 기본 내용입니다.

그룹에 사용자를 추가하는 명령어는 adduser –G [GROUP] [USER] 입니다.

이 명령어를 사용하면 특정 그룹에 사용자를 추가할 수 있습니다.

groups 명령어를 사용하면 현재 사용 중인 사용자의 그룹 목록을 확인할 수 있습니다.

명령어를 사용할 때 인수 없이 입력하면 현재 로그인한 사용자의 그룹을 표시하고, 특정 사용자나 사용자 그룹 이름을 입력하면 해당 사용자나 사용자 그룹의 그룹 목록을 표시합니다.

 

예를 들어, 다음과 같이 입력할 수 있습니다.

# groups
root
# groups user1
user1 : group1 group2 group3

 

여러 사용자의 그룹 목록을 확인하려면 사용자 이름을 공백으로 구분하여 명령어를 입력합니다.

# groups user1 user2
user1 : group1 group2 group3
user2 : group2 group3 group4

 

cat /etc/group 명령어를 사용하면 시스템에 선언된 모든 그룹들에 대한 기본적인 정보를 확인할 수 있습니다.

# cat /etc/group
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
sys:x:3:root,bin,adm
adm:x:4:root,adm,daemon
..... (생략) ....
sabayon:x:86:
fedora:x:500:
user01:x:501:

 

출력 결과는 각 그룹의 이름, 그룹 ID, 해당 그룹에 속한 사용자의 목록 등을 표시합니다.

그룹에 사용자를 추가할 때는 adduser -G [그룹] [사용자] 명령어를 사용합니다.

이때, UNIX 계열에서는 계정이 그룹에 가입할 때 그룹의 개수가 16개 이상이 되면 최초 가입된 그룹부터 삭제됩니다.

그러나 LINUX 계열의 리눅스에서는 이러한 문제가 발생하지 않으므로 안심하고 사용하실 수 있습니다.

 

last 명령어

last 명령어는 유닉스와 리눅스 기반 시스템에서 사용되는 쉘 명령어 중 하나입니다.

사용자들의 로그인 기록을 보여주기 때문에, 시스템의 감사 및 보안 관리에 유용하게 사용됩니다.

last 명령어는 시스템 로그파일을 기반으로 작동합니다.

로그인 정보가 시스템 로그파일에 기록되어 있기 때문에, 로그인 정보를 검색하려면 로그파일을 읽어야 합니다.

last 명령어의 결과는 사용자 이름, 로그인한 시간, 로그아웃한 시간, IP 주소 등과 같은 정보를 제공합니다.

이 정보를 이용하여 특정 사용자가 시스템에 언제 접속했는지, 어디서 접속했는지 등을 파악할 수 있습니다.

last 명령어는 여러 옵션을 제공합니다.

-n 옵션은 보여줄 결과의 개수를 지정할 수 있고, -x 옵션은 시스템에서 현재 접속 중인 사용자를 제외한 사용자들의 로그인 정보를 보여줍니다.

또한, lastb 명령어는 로그인에 실패한 사용자들의 정보를 보여주며, lastlog 명령어는 시스템에 가장 최근에 로그인한 사용자들의 정보를 보여줍니다.

last 명령어는 시스템 보안을 강화하는 데 큰 도움이 됩니다.

예를 들어, 로그인 시도가 실패한 사용자들의 정보를 확인하여 무차별 대입 공격을 방지할 수 있습니다.

또한, 특정 사용자가 시스템에 악의적으로 접근한 경우, 해당 사용자의 로그인 정보를 확인하여 범인을 찾아낼 수 있습니다.

따라서, 시스템 관리자는 last 명령어를 자주 사용하면서 시스템 보안을 강화하는 데 노력해야 합니다.

 

[명령어 형식]

# last
# last root
# last -5 /* 마지막 5개 행만 결과로 보여줌 */
# last -R /* 마지막 결과에서 호스트 (IP 주소) 접속 기록을 제외하고 결과만 표시 */
# last -a /* 마지막 결과에서 호스트 (IP 주소) 정보를 마지막에 출력 */

위 예제 코드는 last 명령어를 사용하는 방법에 대한 명령어 형식을 보여줍니다.

  1. last 명령어는 사용자의 로그인 기록을 보여줍니다.
  2. last root 명령어는 "root" 사용자의 로그인 기록을 보여줍니다.
  3. last -5 명령어는 최근 5개의 로그인 기록을 보여줍니다.
  4. last -R 명령어는 호스트(IP 주소) 접속 기록을 제외한 결과만을 출력합니다.
  5. last -a 명령어는 호스트(IP 주소) 정보를 맨 마지막에 출력합니다.

따라서, last 명령어는 시스템 관리자가 시스템 보안을 강화하는 데 유용한 명령어 중 하나입니다.

 

[명령어 옵션]

옵션 설명
-n (num) 지정한 num 만큼의 줄만 보여준다.
-f (file) 지정한 파일에서 정보를 불러온다.
-R 보여주는 목록에서 hostname(IP주소)필드는 보여주지 않는다.
-a 보여주는 목록에서 hostname(IP주소)필드를 마지막 필드에 보여준다.
-d 다른 호스트에서 접속한 것만 보여준다.
-x shutdown이 일어난 상태나, run level이 바뀐 상태를 보여준다.

 

last 명령어 사용

[TERM1] Fedora 사용자의 터미널

Fedora에서는 터미널을 사용하여 다양한 작업을 수행할 수 있습니다.

이를 위해서는 터미널에 로그인해야 합니다.

위의 코드에서 보이는 것처럼, 터미널에 로그인하기 위해서는 다음 명령어를 입력해야 합니다.

# ssh fedora@localhost

 

로그인이 완료되면, 새로운 창이 열리게 됩니다.

이제 터미널을 이용해 다양한 작업을 시작할 수 있습니다.

예를 들어, tty 명령어를 이용하여 현재 터미널이 사용 중인 장치를 확인할 수 있습니다.

위의 코드에서 보이는 것처럼, /dev/pts/#와 같은 결과가 나타납니다.

 

[TERM2] 관리자 터미널

# last               /* 최근 기록이 상단에 출력된다. head 명령어와 같이 사용된다. */
fedora   pts/2        192.168.0.1      Wed Feb 10 10:27   still logged in
root     pts/1        192.168.0.1      Wed Feb 10 10:25   still logged in
reboot   system boot  2.6.18-164.el5   Wed Feb 10 10:23          (00:08)
root     pts/2        linux200         Wed Jan 27 14:11 - 14:28  (00:16)
root     pts/1        192.168.0.1      Wed Jan 27 14:11 - 14:28  (00:17)
fedora   pts/2        192.168.0.1      Wed Jan 27 13:52 - 14:10  (00:18)
root     pts/1        192.168.0.1      Wed Jan 27 13:40 - 14:10  (00:29)
root     pts/4        :0.0             Wed Jan 27 13:39 - 13:39  (00:00)
root     pts/3        192.168.0.1      Wed Jan 27 13:30 - 13:39  (00:09)
root     pts/3        192.168.0.1      Wed Jan 27 13:29 - 13:30  (00:00)
root     :0                            Wed Jan 27 13:27 - crash (13+20:55)
root     :0                            Wed Jan 27 13:27 - 13:27  (00:00)

last 명령어는 시스템에서 어떤 사용자가 언제 로그인하고 로그아웃했는지, 또는 현재 로그인 중인지 등을 조회할 수 있는 명령어입니다.

last 명령어를 실행하면 최근 로그인 정보가 상단에 출력됩니다.

head 명령어와 같이 사용하여 원하는 개수만큼의 로그인 정보를 출력할 수 있습니다.

출력된 정보 중에서는 사용자 이름, 로그인한 터미널 번호, 접속한 IP 주소, 로그인한 시간, 로그아웃한 시간(로그아웃하지 않은 경우 "still logged in"으로 표시), 작업 진행 시간 등이 포함됩니다.

로그인 정보가 출력되는 순서는 최신 정보가 상단에 위치하게 됩니다.

따라서 last -5 명령어를 사용하여 최근에 로그인한 사용자 정보를 출력하면 가장 최신 정보가 출력됩니다.

last 명령어는 lastb 명령어와 함께 사용하여 실패한 로그인 시도 기록도 조회할 수 있습니다.

last 명령어는 기본적으로 /var/log/wtmp 파일에서 로그인 기록을 읽어옵니다.

만약 기간이 지난 파일의 로그인 기록을 확인하고 싶다면 last -f 옵션을 사용하여 해당 파일을 지정할 수 있습니다.

또한, lastb 명령어는 기본적으로 /var/log/btmp 파일에서 실패한 로그인 시도 기록을 읽어옵니다.

last 명령어는 보안 수준이 높은 시스템에서도 자주 사용되는 명령어 중 하나입니다.

예를 들어, 시스템 관리자는 last 명령어를 사용하여 시스템에 로그인한 사용자들의 활동 내역을 확인하고, 불법적인 활동이 있는지 여부를 파악할 수 있습니다.

그리고 last 명령어는 보안 이슈가 있을 수 있습니다.

따라서, 시스템 관리자는 보안 상태를 체크하여 last 명령어를 사용해야 합니다.

 

/var/log/wtmp.# 파일 읽기

# file /var/log/wtmp                                      /* data 파일 타입을 가지고 있다 */
/var/log/wtmp: data
# file /etc/passwd                                        /* text 파일의 경우에 확인 가능 */
/etc/passwd: ASCII text
# cat /var/log/wtmp                                       /* 파일을 열수 있는 형식 아님 */
# last -f /var/log/wtmp    (# last)

특정 로그 파일의 파일 유형과 내용을 확인하기 위해 몇 가지 명령이 실행됩니다.

첫 번째 명령인 file /var/log/wtmp은 파일의 유형을 확인하며, 이 경우 data를 반환합니다.

그 다음 명령인 file /etc/passwd는 파일의 유형을 확인하고 ASCII text를 반환합니다.

그런 다음, cat /var/log/wtmp 명령이 실행되어 파일의 내용을 표시합니다.

그러나 출력물은 열 수 있는 형식이 아니므로 쉽게 읽을 수 없을 수도 있습니다.

마지막으로, last -f /var/log/wtmp 명령이 실행되어 마지막으로 로그인한 사용자와 해당 타임스탬프, 그리고 아직 로그인 중인지 여부가 표시됩니다.

 

last -f 옵션 사용하는 경우

# cd /var/log 
# ls wtmp* 
wtmp  wtmp.0  wtmp.1  wtmp.2 ....

# last   -----> /var/log/wtmp
# last –f /var/log/wtmp.0  < 정책에 의해 로그가 일정 기간이 지나면 다른 파일로 저장된다 >
/etc/logrotate.conf 파일에 의해 결정
기간이 지난 파일의 로그인기록을 확인할 경우 사용한다.

기간이 지난 파일의 로그인기록을 확인할 경우 사용한다.

이 로그는 시스템 관리자가 시스템의 보안을 유지하기 위해 중요한 역할을 한다.

로그인 기록을 확인하여 시스템 내부의 문제점을 파악하고, 보안 문제를 해결하는 데 도움이 된다.

이를 통해, 시스템 관리자는 사용자 계정의 보안을 강화할 수 있으며, 시스템의 안전성을 높일 수 있다.

또한, 이 파일은 로그인 기록을 확인하기 위한 유용한 도구이다. 누가 시스템에 로그인하였는지, 언제 로그인하였는지 등의 정보를 파악할 수 있다. 이를 통해, 시스템 관리자는 시스템 내부의 문제를 더욱 빠르게 파악할 수 있으며, 즉각적인 대처가 가능해진다.

하지만, 이 파일은 정책에 따라서 일정 기간이 지나면 다른 파일로 저장될 수도 있다.

따라서, 기간이 지난 파일의 로그인 기록을 확인해야 할 때는 해당 파일을 사용해야 한다.

이를 위해서는 "/etc/logrotate.conf" 파일의 설정을 확인하여, 로그 파일의 유지 기간을 확인하고 수시로 파일을 저장하여 보안을 강화할 필요가 있다.

 

last 명령어의 사용 예

(요청) 어제 file.log 파일이 삭제된 사용자를 찾아주세요. 해당 사용자는 누구인가요? 어떤 명령어를 사용했나요?

(정보1) 파일 삭제가 발생한 시간대: 어제.

# last | grep 'Nov 30'

"last" 명령어를 사용하여 시스템에 로그인한 마지막 사용자의 정보를 표시합니다.

"grep" 명령을 사용하여 11월 30일에 로그인한 항목만 필터링하여 출력합니다.

사용자 이름, 로그인한 터미널, IP 주소, 로그인 시간, 로그아웃 시간 및 로그인 기간 등의 정보를 확인할 수 있습니다.

 

(정보2) 삭제된 파일의 이름: file.log

# cat ~/.bash_history

 

(정보3) 삭제된 파일의 명령어가 담긴 내역 출력

# cat ~/.bash_history | grep 'file.log' | grep rm

"grep" 명령어를 사용하여 "file.log" 문자열을 포함하는 모든 히스토리 항목을 검색합니다.

그리고 "grep" 명령어를 한 번 더 사용하여 "rm" 명령어가 포함된 히스토리 항목을 필터링합니다.

(정보4) 파일이 삭제된 원인을 찾아보기 위해, 다음과 같은 추가 정보를 수집할 수 있습니다:

해당 파일을 삭제한 사용자의 권한 정보 파일 삭제 이전에 해당 파일에 대해 실행된 명령어들의 기록 파일 삭제 이전에 시스템 로그에 남은 정보 디렉토리나 파일의 권한 정보를 확인하여 해당 사용자의 권한을 파악할 수 있습니다.

"ls" 명령어를 사용하여 파일이나 디렉토리의 접근 권한을 확인할 수 있습니다.

시스템 로그 파일에는 파일에 대한 다양한 활동(생성, 수정, 이동, 삭제 등)에 대한 정보가 기록되어 있습니다.

"syslog"나 "auth.log" 파일과 같은 로그파일을 검색하여 파일 삭제와 관련된 로그를 찾아 볼 수 있습니다.

이전 명령어들의 기록을 조사하여 파일이 어떻게 사용되었는지 파악할 수 있습니다.

이를 위해서는 "history" 명령어를 사용하여 사용자가 실행한 모든 명령어를 볼 수 있습니다.

위의 정보를 종합하여 파일 삭제를 수행한 사용자와 명령어를 파악할 수 있습니다.

그러나, 이 정보만으로는 파일이 누구에 의해 삭제되었는지 확실하게 알 수 없습니다.

때문에 다음과 같은 추가 정보를 수집할 수 있습니다.

 

(정보5) "rm" 명령어를 사용한 지 1시간 이내에 로그인한 사용자 목록 출력

# last -i | grep "logged in" | awk '{print $1,$3}' | sed 's/(//'

"last" 명령어를 "-i" 옵션과 함께 사용하여 로그인 기록 중 마지막으로 로그아웃한 시간이 아닌 로그인한 시간을 기준으로 출력합니다.

"grep" 명령어를 사용하여 "logged in"이라는 문자열이 포함된 로그인 정보를 필터링합니다.

"awk" 명령어를 사용하여 사용자 이름과 로그인 시간을 출력합니다.

"sed" 명령어를 사용하여 로그인 시간 정보에서 괄호를 제거합니다.

 

(정보6) 로그인한 사용자가 "rm" 명령어를 실행한 내역 출력

# last -i | grep "logged in" | awk '{print $1}' | xargs -I {} sh -c "echo -n {}; echo; sudo grep -w {} /home/*/.bash_history | grep rm"

"last" 명령어를 "-i" 옵션과 함께 사용하여 로그인 기록 중 마지막으로 로그아웃한 시간이 아닌 로그인한 시간을 기준으로 출력합니다.

"grep" 명령어를 사용하여 "logged in"이라는 문자열이 포함된 로그인 정보를 필터링합니다.

"awk" 명령어를 사용하여 사용자 이름을 출력합니다. ”xargs" 명령어를 사용하여 사용자 이름을 "{}"로 대체합니다.

"sh" 명령어를 사용하여 각 사용자의 ".bash_history" 파일에서 "rm" 명령어를 검색합니다.

"sudo" 명령어를 사용하여 각 사용자의 ".bash_history" 파일에 대한 권한을 얻습니다.

위의 정보를 종합하여 파일이 삭제된 사용자와 명령어를 파악할 수 있습니다.

 

[작업 준비]

특정 파일이 삭제되었는지, 그리고 누가 그 작업을 수행했는지 확인하는 데 사용할 수 있는 일련의 명령어를 보여줍니다.

# cd /test 
# chmod 777 /test 
# touch file.log 

# ssh fedora@localhost 
fedora 사용자로 로그인

$ rm –rf /test/file.log 
$ ls /test 
-> file.log 파일이 지워졌는지 확인

$ exit

사용자가 /test 디렉토리로 이동하여 file.log라는 새 파일을 만듭니다.

그런 다음 "fedora" 사용자로 로그인하고 "rm -rf /test/file.log" 명령을 실행하여 파일을 삭제합니다.

마지막으로, 사용자는 SSH 연결을 종료합니다.

 

# last | grep 'Sep  9'
fedora   pts/4        linux249         Fri Sep  9 10:29 - 10:30  (00:00)    
root     pts/3        :0.0             Fri Sep  9 10:11   still logged in   
fedora   pts/2        linux249         Fri Sep  9 10:11   still logged in   
root     pts/2        linux249         Fri Sep  9 10:10 - 10:10  (00:00)    
root     pts/1        :0.0             Fri Sep  9 10:00   still logged in   
root     pts/1        :0.0             Fri Sep  9 09:59 - 10:00  (00:00)    
root     :0                            Fri Sep  9 09:59   still logged in   
root     :0                            Fri Sep  9 09:59 - 09:59  (00:00)    
reboot   system boot  2.6.18-164.el5   Fri Sep  9 09:56          (00:35)

"last" 명령을 사용하여 시스템에 로그인한 마지막 사용자의 정보를 표시합니다.

이때 "grep" 명령을 사용하여 9월 9일에 로그인한 항목만 필터링하여 출력합니다.

 

# egrep -l "file.log" /home/*/.bash_history
/home/fedora/.bash_history

모든 사용자의 "/home" 디렉토리에서 ".bash_history" 파일에서 "file.log" 문자열을 검색합니다.

"-l" 옵션은 검색 문자열을 포함하는 파일의 파일 이름만 표시하도록 지정하며,

출력 결과에서 "fedora" 사용자의 ".bash_history"에서 파일이 삭제되었음을 확인할 수 있습니다.

 

# egrep "file.log" /home/fedora/.bash_history
rm -rf /test/file.log

네 번째 코드 블록은 파일을 삭제한 명령어인 "rm -rf /test/file.log"를 검색합니다.

이 명령어들의 일련의 조합은 리눅스 시스템에서 파일 삭제를 조사하고 누가 작업을 수행했는지 확인하는 데 유용할 수 있습니다.

"rm" 명령은 데이터를 불가능하게 만들 수 있는 강력한 도구이므로, 권한이 있는 사용자만 사용하고 가능한 조심스럽게 사용해야 합니다.

 

lastlog 명령어

lastlog 명령어는 사용자 가장 최근에 로그인한 정보만을 출력하는 기능을 제공합니다.

이 명령어는 리눅스 시스템 관리자가 로그인한 사용자들의 활동을 추적하고 관리하는데 도움이 됩니다.

lastlog 명령어는 /var/log/lastlog 파일에 저장된 정보를 출력합니다.

이 파일은 시스템에서 사용자들이 최종 로그인한 시간과 위치를 추적하는데 사용됩니다.

사용자가 로그인하면 시스템은 /var/log/lastlog 파일에 마지막 로그인 정보를 저장합니다.

이때 저장되는 정보는 사용자의 로그인 이름, 터미널, 접속한 호스트, 로그인 시간 등이 포함됩니다.

또한, 사용자 계정을 삭제하면 /var/log/lastlog 파일에서도 해당 사용자 계정의 정보가 삭제됩니다.

이것은 시스템 관리자가 시스템 사용자들의 활동을 추적하고 관리하는데 있어서 중요한 보안 기능 중 하나입니다.

따라서, lastlog 명령어는 리눅스 시스템 관리자가 시스템 사용자들의 로그인 활동을 추적하고 관리하는데 매우 유용합니다.

 

[명령어 형식]

# lastlog
# lastlog -u feodra /* 지정한 로그인명의 lastlog 정보만을 보여준다. */
# lastlog -t 3 /* 지정한 날짜기간 안에 로그인한 정보만을 보여준다 */

lastlog 명령어는 리눅스에서 사용자가 마지막으로 로그인한 정보를 볼 수 있는 강력한 도구입니다.

시스템에서 사용자 활동을 추적하는 데 유용합니다.

lastlog 명령어는 기본적으로 시스템에 등록된 모든 사용자에 대한 정보를 출력합니다.

하지만 -u 플래그 뒤에 사용자 이름을 입력하면 해당 사용자의 lastlog 정보만 볼 수 있습니다.

또한, -t 플래그를 사용하여 지정된 일 수 이내에 로그인한 사용자만 필터링하여 출력할 수 있습니다.

이는 정기적으로 사용자 활동을 모니터링하는 데 유용합니다.

 

[명령어 옵션]

옵션 설명
-u 지정된 사용자의 lastlog 기록을 보여줌
-t 지정된 날짜기간 안의 로그인 정보만 출력해 준다.

 

lastlog 명령어 사용법

먼저, 로컬호스트에 root로 로그인합니다.

# telnet localhost
# ssh localhost

위 두 명령어 중 하나를 사용하여 로컬호스트에 로그인합니다.

 

사용자 이름과 암호를 입력하면 로그인이 성공하고 마지막 로그인 시간과 로그인한 호스트의 정보가 표시됩니다.

login as: root
root@192.168.0.200's password:
Last login: Wed Feb 10 10:25:22 2010 from 192.168.0.1

위의 코드는 root 사용자로 로그인했을 때 출력되는 내용입니다.

로그인 시 마지막으로 로그인한 시간과 호스트의 정보가 출력됩니다.

 

exit 명령어를 사용하여 로그아웃합니다.

# exit

 

다시 lastlog 명령어를 사용하여 마지막 로그인한 사용자의 정보를 출력합니다.

# lastlog
Username         Port     From             Latest
root             pts/2    linux249         Fri Sep  9 10:41:24 +0900 2011
bin                                        **Never logged in**
daemon                                     **Never logged in**
adm                                        **Never logged in**
lp                                         **Never logged in**
sync                                       **Never logged in**
shutdown                                   **Never logged in**
halt                                       **Never logged in**
mail                                       **Never logged in**

..... (중략) .....

rpcuser                                    **Never logged in**
named                                      **Never logged in**
hsqldb                                     **Never logged in**
sshd                                       **Never logged in**
haldaemon                                  **Never logged in**
avahi-autoipd                              **Never logged in**
xfs                                        **Never logged in**
gdm                                        **Never logged in**
sabayon                                    **Never logged in**
fedora           pts/4    linux249         Fri Sep  9 10:29:54 +0900 2011
user01           pts/3    linux249         Thu Sep  8 10:26:39 +0900 2011

위의 코드는 lastlog 명령어를 사용하여 마지막으로 로그인한 사용자의 정보를 출력한 결과입니다.

출력된 정보에는 사용자 이름, 터미널, 로그인한 호스트, 마지막 로그인 시간이 포함됩니다.

이때 **Never logged in**은 한 번도 로그인하지 않은 사용자의 정보를 나타냅니다.

따라서 위의 과정은 로컬호스트에 root로 로그인하여 lastlog 명령어를 사용하여 마지막으로 로그인한 사용자의 정보를 출력하는 과정입니다.

 

출력 내용 설명

Username         Port     From             Latest
root             pts/2    linux249         Fri Sep  9 10:41:24 +0900 2011
sabayon                                    **Never logged in**

Username     계정이름
Port         터미널 정보
From         접속을 시도한 호스트
Latest       최종 접속 일자,시간  ( **Never logged in**)

위의 내용은 lastlog 명령어 실행 결과 출력 내용입니다.

Username은 계정 이름, Port는 터미널 정보, From은 접속을 시도한 호스트 정보, Latest는 최종 접속 일자와 시간을 의미합니다.

만약 사용자가 서버에 단 한 번도 로그인한 적이 없다면 Latest 정보는 Never logged in으로 표시됩니다.

 

lastlog –u 명령어 사용법

# lastlog –u fedora

위의 명령어는 fedora 사용자의 lastlog 정보만 출력하는 방법입니다.

따라서, lastlog 명령어는 서버 관리자나 보안 담당자들이 사용자 관리나 보안 강화를 위해 자주 사용하는 명령어 중 하나입니다.

이를 활용하여 보안 강화와 사용자 관리를 철저하게 할 수 있습니다.

기간이 지난 파일의 로그인기록을 확인할 경우 사용한다.

이 로그는 시스템 관리자가 시스템의 보안을 유지하기 위해 중요한 역할을 한다.

로그인 기록을 확인하여 시스템 내부의 문제점을 파악하고, 보안 문제를 해결하는 데 도움이 된다.

이를 통해, 시스템 관리자는 사용자 계정의 보안을 강화할 수 있으며, 시스템의 안전성을 높일 수 있다.

또한, 이 파일은 로그인 기록을 확인하기 위한 유용한 도구이다.

누가 시스템에 로그인하였는지, 언제 로그인하였는지 등의 정보를 파악할 수 있다.

이를 통해, 시스템 관리자는 시스템 내부의 문제를 더욱 빠르게 파악할 수 있으며, 즉각적인 대처가 가능해진다.

하지만, 이 파일은 정책에 따라서 일정 기간이 지나면 다른 파일로 저장될 수도 있다.

따라서, 기간이 지난 파일의 로그인 기록을 확인해야 할 때는 해당 파일을 사용해야 한다.

이를 위해서는 "/etc/logrotate.conf" 파일의 설정을 확인하여, 로그 파일의 유지 기간을 확인하고 수시로 파일을 저장하여 보안을 강화할 필요가 있다.

반응형