简介
Linux Bash Shell提供了一个环境变量:PROMPT_COMMAND,这个变量是在BASH出现提示符前执行的命令。
本文介绍如何在BASH SHELL下使用 PROMPT_COMMAND
环境变量来记录用户的操作历史。
PROMPT_COMMAND示例
1.确定用户使用BASH SHELL
|
cat /etc/passwd
|
|
root:x:0:0:root:/root:/bin/bash
|
2.PROMPT_COMMAND示例
|
export PROMPT_COMMAND="date"
ls |
|
johnyin@yin-zh:~/tmp$ls
usr ks.cfg syslinux-4.02-4.el6.x86_64.rpm dir.sh rootfs.sh
2014年 08月 27日 星期三 13:02:26 CST
|
使用PROMPT_COMMAND记录用户操作历史
设置系统环境变量
|
PROMPT_COMMAND='msg=$(history 1 | { read x y; echo $y; });user=$(whoami); logger $(date "+%Y-%m-%d%H:%M:%S"):$user[$(who am i)]:`pwd`/:"$msg"' |
查看用户操作记录
|
root@target:~# tail -10 /var/log/messages |
|
…....................................
Aug 27 13:12:19 yin-zh johnyin: 2014-08-2713:12:19:root[johnyin pts/1 2014-08-27 12:53 (:0.0)]:/home/johnyin/johnyin/shell/:tail -10 /var/log/messages
r |
如果需要统一的记录和管理用户操作记录,可以结合rsyslog将记录信息统一管理到一个日志服务器进行统一处理和监控。