http://blog.163.com/ly_89/blog/static/1869022992011756434459/
利用 PROMPT_COMMAND 实现审计功能,记录什么用户,在什么时间,做了什么操作,然后将查到的信息记录到一个文件里。
############################################################################################
一. 配置
export HISTORY_FILE=/var/log/`date '+%y-%m-%d'`.log
export PROMPT_COMMAND='{ date "+%y-%m-%d %T ##### $(who am i |awk "{print \$1\" \"\$2\" \"\$5}") #### $(history 1 | { read x cmd; echo "$cmd"; })"; } >> $HISTORY_FILE'##########################################################################################
添加完成,保存退出,然后使用如下的命令使之生效:
#. /etc/profile
或
# source /etc/profile
注意:如果没有报错说明成功了。
这样任何操作命令都会在/var/log/日期.log中看到,还可以自己定义目录或者文件
############################################################################################
二、验证
验证日志里面是否有数据,命令如下:
[root@confluencexcs log]# cat 11-08-06.log
11-08-06 03:03:28 ##### root pts/0 (192.168.211.87) #### ls
11-08-06 03:03:49 ##### root pts/0 (192.168.211.87) #### ls
11-08-06 03:03:57 ##### root pts/0 (192.168.211.87) #### cat 11-08-06.log
11-08-06 03:04:17 ##### root pts/0 (192.168.211.87) #### cat /etc/passwd
可以看到里面已经有数据。
还可以使用:
PROMPT_COMMAND='{ date "+%Y-%m-%d %T ##### USER:$USER IP:$SSH_CLIENT PS:$SSH_TTY #### $(history 1 | { read x cmd; echo "$cmd"; })";
} >>$HISTORY_FILE'
命令不一样但是结果是一样的。
###############################################################################################
添加完成,保存退出,然后使用如下的命令使之生效:
#. /etc/profile
或
# source /etc/profile
注意:如果没有报错说明成功了。
转载于:https://blog.51cto.com/linuxstudy/1408420