Linux中的PROMPT_COMMAND会记录下出现提示符前面的命令,利用这个特性可以实现记录所有用户的操作记录。
root用户身份下,进行以下操作:
方法一(记录到指定文件中):
vi /etc/profile
#在最后一行追加以下环境变量
export PROMPT_COMMAND='{ date "+%Y-%m-%d %T WHO: $(who am i |awk "{print $1" "$2" "$5}") PATH: $(pwd) CMD: $(history 1 | { read x cmd; echo "$cmd"; })"; } >> /var/log/audit_cmd.txt'
#保存并执行如下:
source /etc/profile
方法二(记录到/var/log/messages中):
vi /etc/profile
#在最后一行追加以下环境变量
export PROMPT_COMMAND='{ msg=$(history 1|{ read x y; echo $y; });logger "[euid=$(whoami)]":$(who am i):[`pwd`]"$msg";}'
#保存并执行如下:
source /etc/profile