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高危命令并发送告警