利用SHELL的PROMPT_COMMAND添加日志审计功能,实时记录任何用户的操作到日志文件中

利用 PROMPT_COMMAND 实现命令审计功能:

记录什么用户,在什么时间,做了什么操作,然后将查到的信息记录到一个文件里。

具体操作:

将以下内容追加到/etc/profile:

#############日志审计

chmod +s /usr/bin/chmod &> /dev/null              #让普通用户能建立目录及文件

chmod +s /usr/bin/chown &> /dev/null              #让普通用户能建立目录及文件

mkdir -p /var/log/history/${LOGNAME}            #建立以用户名称命名的目录

chmod 777 /var/log/history &> /dev/null

chown -R ${LOGNAME}. /var/log/history/${LOGNAME} &> /dev/null

chmod 700 /var/log/history/${LOGNAME} &> /dev/null

export HISTORY_FILE=/var/log/history/${LOGNAME}/`date '+%Y-%m-%d_%T'`.log &> /dev/null         #自定义日志文件路径及名称

export PROMPT_COMMAND='{ date +" $(who am i |awk "{print \$1\" \"\$2\" \"\$5}") $(history 1 | { read x cmd; echo "$cmd"; })"; } >> $HISTORY_FILE' &> /dev/null           #将命令追加到日志文件

chmod 600 /var/log/history/${LOGNAME}/* 2> /dev/null

chmod -s /usr/bin/chmod &> /dev/null             #取消普通用户授权

chmod -s /usr/bin/chown &> /dev/null             #取消普通用户授权

保存退出

source /etc/profile

如果没有报错说明成功了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容