Linux 利用 PROMPT_COMMAND 实现审计功能

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 利用 PROMPT_COMMAND 实现审计功能相关的知识,希望对你有一定的参考价值。


命令审计,采用logger方式将信息记录到/tmp下面,目录也可以自己修改的

这个是根据用户来分类的,如果觉得不方便也可以用时间来分类也行


这个只是在root用户有记录,如果想所有用户都有记录,就得加到/etc/profile里面

echo "export PROMPT_COMMAND='{ msg=\$(history 1 | { read x cmd; echo \$cmd; });user=\$(whoami); echo \$(date \"+%Y-%m-%d %H:%M:%S\"):\$user:\`pwd\`/:\$msg ---- \$(who am i); } >> /tmp/\`hostname\`.\`whoami\`.history-timestamp'" >> /root/.bash_profile


mkdir -p /var/log/user_record/

echo "export PROMPT_COMMAND='{ msg=\$(history 1 | { read x cmd; echo \$cmd; });user=\$(whoami); echo \$(date \"+%Y-%m-%d %H:%M:%S\"):\$user:\`pwd\`/:\$msg ---- \$(who am i); } >> /var/log/user_record/\`hostname\`.\`whoami\`.history-timestamp'" >> /etc/profile


or

vim /etc/profile
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


方法很多,可以根据自己的需求来具体做

以上是关于Linux 利用 PROMPT_COMMAND 实现审计功能的主要内容,如果未能解决你的问题,请参考以下文章

时实日志

[linux运维] 利用zabbix监控linux高危命令并发送告警

Linux 环境变量PROMPT_COMMAND

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

linux 实时记录用户执行的命令

PS1 和 PROMPT_COMMAND 有啥区别?