Linux Bash Command Log
방안1(추천)
단점 : IP를 남길 수 없으며 ID대신 UID로 저장, 별도 로그파일로 저장안됨
# syslog를 수집하는 로그 서버쪽에서 IP 저장가능
장점 : 모든 로그가 실시간으로 저장
방법 : /etc/profile 내 shopt -s syslog_history 추가
방안2
단점 : 가끔 bash실행 명령어가 입려되지 않거나 자동로그오프 이후 로그인시 이전 실행 로그가 저장됨
장점 : 로그파일 별도 저장, 로그형식(IP, ID) 변경 등 가능
방법 : /etc/profile 내 아래 추가
------------아래-----------------------
whoami="$(whoami)@$(echo $SSH_CONNECTION | awk '{print $1}')"
export PROMPT_COMMAND='RETRN_VAL=$?;logger -p local6.debug "$whoami [$$]: $(history 1 | sed "s/^[ ]*[0-9]\+[ ]*//" ) [$RETRN_VAL]"'
방안3
단점 : 방안2보다는 저장되나 sudo su 명령어는 exit를 입력해야지 저장함 실제 명령어 입력시간과 로그 저장하는 시간이 다름(sudo su 에 한해서)
장점 : 로그파일 별도 저장, 로그형식(IP, ID) 변경 등 가능
방법 : /etc/profile 내 아래 추가
------------아래-----------------------
export PROMPT_COMMAND='trap "" 1 2 15; history -a >(tee -a ~/.bash_history | while read line; do if [[ $line =~ ^#[0-9]*$ ]]; then continue; fi; logger -p user.info -t "bash[$$]" "($USER) $line"; done); trap 1 2 15;'