본문 바로가기

Learning/ └Essential & Admin

리눅스 기타 관리용 명령어(2)_Unit5-2

기타 관리용 명령어(2)

 

last CMD

# last, lastb - 사용자들의 마지막 로그인 했던 기록 목록 출력
/var/log/wtmp 안에 기록들이 있음

OPTIONS

-n    (num) 지정한 num 만큼의 줄만 출력

-f    (file) 지정한 파일에서 정보를 불러온다.

-R    보여주는 목록에서 ip주소 는 제외한다

-d    다른 호스트에서 접속한 것만 출력

 

명령어 형식

# last

# last root

# last -5    5행의 결과만 출력

# last -R    last의 결과에서 호스트 접속기록을 제외한 결과 출력

# last -a    last의 결과중 호스트 (ip주소)정보를 맨 마지막에 출력
 

 

상단이 제일 최근

 

 

last 명령어 사용

[TERM1] fedora 사용자의 터미널

# ssh fedora@localhost

 

$ tty

 

[TERM2] 관리자 터미널

# last

(사용자 / 최종접속일 / 접속 interval / 접속횟수 / 1회당 사용시간 )

 

# last -5 ( # last | head -5 )

 

새로운 터미널로 root 계정에서 last 검색해본 결과 fedora 사용자의 기록 출력됨

 

/var/log/wtmp.# 파일 읽기 (last 기록)

 

# file /var/log/wtmp        // data 파일 타입을 가지고 있다

 

# file /etc/passwd        // text 파일의 경우 확인 가능

 

# cat /var/log/wtmp        // 파일을 열수 있는 형식이 아님

 

# last -f /var/log/wtmp     (# last)        

 

 

 

 

 

/var/log 안에 리스트 중 wtmp 파일 확인

 

[참고] last -f 옵션 사용하는 경우

# cd /var/log

# ls wtmp*

wtmp    wtmp.0    wtmp.1    wtmp.2 ....

 

# last -f /var/log/wtmp.0 지난 예전의 last 파일 출력 로그인/로그아웃 정보

wtmp는 매월 하나씩 생성된다

 

 

last 명령어의 사용 예

 

개발자 요청 내용 : 어제 파일 (file.log) 을 삭제한 사용자 검색요청

정보1 : 어제 파일이 지워졌다

# last | grep 'Oct 21'

 

정보2 : 지워진 파일의 이름 : file.log

 

 

#history    //로그인 한뒤 내가 출력한 명령어 (command history) 1000개까지 저장

 

 

# cat ~/.bash_history           //전에 사용했던 명령어 들을 다시 사용할 수 있도록 기록

# cat ~/.bash_history | grep 'file.log' | grep rm         //file.log 과 rm 이 들어간 명령어

 

작업 준비

# cd test

# chmod 777 /test

# touch file.log

 

 

# telnet localhost    (fedora 사용자로 로그인)

telnet 접속 안될시 ssh fedora@localhost 로 접속

 

$ rm -rf /test/file.log

$ ls /test        (file.log 파일이 지워졌는지 확인)

$exit

 

...

 

 

# last | grep 'Oct 22'            // 10월 22일 로그인 기록을 확인

(의심스러운 사용자 발견 fedora..)

 

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

/home 디렉터리 안에 file.log 파일 기록 출력,

 

 

# egrep "file.log" /home/fedora/.bash_history

fedora 가 rm file.log 라는 명령어를 사용하여 삭제 한 것을 출력(검거 완료)

    

# egrep "" /home/fedora/.bash_history

fedora 사용자가 그외 사용한 다른 명령어들 검색 

 


 

lastlog CMD

# lastlog -  사용자의 마지막 로그인 정보 출력(가장 최근 로그인)
lastlog는 /var/log/lastlog 라는 파일 내용 출력

사용자 계정을 삭제하면 /var/log/lastlog 파일에도 사용자 계정에 해당 정보도 삭제된다.

 

OPTIONS

-u    지정된 사용자의 lastlog 기록 출력

-t    지정된 날짜기간 안의 로그인 정보 출력
 

명령어 형식

# lastlog

# lastlog -u fedora    지정한 로그인명의 lastlog 정보 출력

# lastlog -t 3    지정한 날짜기간 안에 로그인한 정보 출력

# lastlog CMD(/var/log/lastlog)

 

 


 

lastlog 명령어 사용법

 

 

 

# telnet localhost (# ssh localhost)

 

 

# lastlog

 

 

# lastlog -u fedora

 



lastb CMD

# lastb - 사용자들의 마지막 로그인 하지못한 기록 목록 출력
접속 실패 로그 출력 /var/log/btmp파일에 저장 , cat으로 볼수 없음

임의 사용자 계정의 내 시스템 접속여부, 임의 사용자 의 잘못 로그인 했는지 의 정보 확인

 

OPTIONS

-f    지정한 파일에서 정보를 불러온다
 

명령어 형식

#lastb

 

 

 

lastb 명령어 실습

 

 

user01 접속 실패 한 결과 출력(lastb)

 

 

# lastb | grep user01             //user01 의 lastb 결과만 출력

 

 

# lastb | grep user01 | wc -l    //user01 의 lastb(접속실패) 결과 를 수(카운트)로 출력

 

 

 

 

who CMD

# who - 로그인한 사람들을 보여준다 /var/run/utmp 의 내용으로 저장되어있음

OPTIONS

-h (--heading)    헤드라인 정보 표시

-r     run-level 확인

 

명령어 형식

#who    현재 시스템에 접속 중인 모든 사용자

#who -r    현재 사용자의 Runlevel 확인

#who am i    로그인한 사용자 정보 확인

#whoami    현재 사용자명 확인

#who -H    헤드라인과 같이 출력
 

 

 

명령어 실습

 

 

 

 

# ssh 172.16.9.252

# hostname            //현재 접속하고 있는 서버의 이름

# id

# tty

# who                //현재 서버에 접속하고 있는 사용자 출력


w CMD

# w - 시스템에 login한 사용자가 어떤 명령어를 실행하고 있는지 출력

/proc 디렉터리로 부터 사용자에 대한 정보와 실행중인 명령어에 대한 정보 추출

 

명령어 형식

#w

#w user01

--------------------------자동 모니터링 기능

while true

do

CMD

sleep 2

done

--------------------------

 

w 명령어 실습

-w

-w user01

 

 

 

 

pts/2 root인 내가 -w 명령어로 시스템에 로그인 한 사용자들의 정보를 출력

fedora 사용자는 -bash 사용을 하고있고

user01 사용자는 vi /etc/passwd 를 보고있다.

 

악의적인 사용자 로그아웃 시키기

 

 

user01 의 정보를 출력했지만 w user01 을 반복적으로 눌러 실시간으로 확인 하기엔 불편하다

 

 

 

 

while true 명령어 를 사용하여 2초에 한번씩 user01의 정보를 출력하는 명령어를 사용

 

 

 

 

ps CMD - 실행중인 프로세스의 목록을 출력

ps -fu user01 user01의 모든정보 출력

 

# kill -9 4913    

(-9 : 응답에 상관없이 강제종료)

 

 

 

 

 


 

while true tip

 

 

 

[참고] 원격서버에 접속시

원격 서버에 접속하여 접속한 서버의 이름, 사용자, 작업 디렉터리 확인

hostname

id

pwd

 

[참고] 관리 서버에 접속시

자신이 관리하는 서버에 접속하여 접속한 사용자들 로그인/로그아웃 사용자정보

접속되어져 있는 사용자 확인

접속된 사용자가 수행하는 명령어

last

who

w

 

top    

PID    프로세스 ID

USER    프로세스를 실행 시킨 사용자 ID

PR    프로세스의 우선순위

NI    NICE값, 마이너스를 가지는 값이 우선순위가 높음

VIRT    가상 메모리의 사용량(SWAP+RES)

RES    현재 페이지가 상주하고 있는 크기

SHR    분할된 페이지

S    프로세스의 상태

%CPU    프로세스가 사용하는 CPU의 사용율

%MEM    프로세스가 사용하는 메모리의 사용율

TIME+    프로세스가 CPU를 사용한 시간

COMMAND    실행된 명령어

 

 

[TERM1]# top                                윈도우 작업관리자

[TERM1]# tail -f /var/log/messages      실시간으로 파일에 추가되는 내용확인 (log파일 관찰할때)