바로가기 메뉴
본문내용 바로가기
메인메뉴 바로가기



Customer Center

Notice · Security Issue · Account Guide · Global Traffic Test

HOME > Customer Center > Tech Note

기술노트

bash_history 누가 언제 무슨 작업을 했는지 확인하는 방법.
2016.02.11

리눅스 서버에서 일반적으로 history 라는 명령어를 통해서

로그인한 사용자가 작업했던 커맨드를 확인할 수 있습니다.



1. SHELL 마다 각기 다른 HISTFILE이 지정되는데,
Redhat Linux 계열에서 Default SHELL은 BASH이며 HISTFILE은 아래와 같습니다.

~/.bash_history

로그인한 순간부터의 입력한 커맨드는 버퍼에 기록되며,
로그아웃시 버퍼에 기록된 history는 ~/.bash_history 파일에 추가 기록이 됩니다.


2. history 라는 명령어를 입력하면 ~/.bash_history 와 buffered/cache history 가

아래와 같이 화면에 나열됩니다.

[root@rootnya root]# history
204 dmesg
205 clear
206 df -TH
207 ls -alR /var/tmp
208 ls -alR /tmp
209 cd /var/tmp
210 clear
211 ls -la
212 rm -f rpm-tmp.64248
213 clear
214 ls -la
215 clear
216 ls -al
217 history
[root@rootnya root]#

출력된 결과를 살펴보면 Column 1 은 ~/.bash_history 와 buffered/cache history 에 저장된

커맨드의 히스토리 순번이며 Column 2 은 입력하였던 명령어들이다.
그러나, 정작 언제(명령어를 입력한 시각)라는 항목은 보이지 않고 있습니다.


3. HIST 변수의 적용은 /etc/profile 파일에 아래와 같은 라인을 추가합니다.

# Add timestamp to .bash_history
HISTTIMEFORMAT="%Y-%m-%d_%H:%M:%S "
export HISTTIMEFORMAT

위와 같이 /etc/profile 파일에 추가 후 source /etc/profile

또는 ssh 로 재로그인 후 부터는
history 명령어 입력시 Column 2 에 연/월/일/시/분/초 의 시간 정보를 확인할 수 있습니다.

[root@rootnya root]# history
959 2007-06-23_02:08:59 vi /home/com/www/bbs/skin/member_list/list_main.php
960 2007-06-23_02:10:00 ps aux
961 2007-06-23_02:10:01 ps ax
962 2007-06-23_05:24:47 vi /etc/procmailrc
963 2007-06-23_05:25:07 /etc/init.d/qmail reload
964 2007-06-23_05:25:08 ps aux
965 2007-06-23_05:25:11 /etc/init.d/qmail restart
966 2007-06-23_05:25:12 ps aux
967 2007-06-23_05:25:20 tail -f /var/log/qmail/procmail
968 2007-06-23_05:25:31 vi /etc/procmailrc
969 2007-06-23_05:25:39 /etc/init.d/qmail restart
970 2007-06-23_05:25:47 vi /var/log/qmail/procmail
971 2007-06-23_05:26:38 vi /etc/procmailrc
972 2007-06-23_05:26:49 /etc/init.d/qmail restart
[root@rootnya root]# history

단, bash-3.0-alpha 이상의 bash 부터 HISTTIMEFORMAT 변수를 지원합니다.
이전 버전의 bash 는 위 이상의 버전으로 업데이트 후 부터 지원이 됩니다.

첨부파일