這個方案會在每個用戶退出登錄 時把用戶所執(zhí)行的每一個命令都發(fā)送給日志守護進程rsyslogd,你也可通過配置“/etc/rsyslog.conf”進一步將日志發(fā)送給日志服務(wù)器
操作如下:
把下面內(nèi)容添加到/etc/profile文件底部
[root@vm17218 /]# vim /etc/profile
........
#設(shè)置history格式
export HISTTIMEFORMAT="[%Y-%m-%d %H:%M:%S] [`who am i 2>/dev/null| \
awk '{print $NF}'|sed -e 's/[()]//g'`] "
#登錄時清空當前緩存
echo "" > .bash_history
#記錄shell執(zhí)行的每一條命令
export PROMPT_COMMAND='\
if [ -z "$OLD_PWD" ];then
export OLD_PWD=$PWD;
fi;
if [ ! -z "$LAST_CMD" ] && [ "$(history 1)" != "$LAST_CMD" ]; then
logger -t `whoami`_shell_cmd "[$OLD_PWD]$(history 1)";
fi ;
export LAST_CMD="$(history 1)";
export OLD_PWD=$PWD;'
[root@vm17218 /]# source /etc/profile
測試:
分別使用baicells栗菜,root賬號登陸這臺服務(wù)器進行一些操作蚌成。
然后發(fā)現(xiàn)/var/log/message日志文件中已經(jīng)記錄了這兩個用戶的各自操作了~
[root@vm17218 /]# tail -30 ../var/log/messages
……
May 2 04:22:26 vm17218 baicells_shell_cmd: [/etc] 14 [2017-05-02 04:22:22] [111.207.206.9] sudo source profile
May 2 04:22:52 vm17218 baicells_shell_cmd: [/etc] 15 [2017-05-02 04:22:52] [111.207.206.9] ip add
May 2 04:22:55 vm17218 baicells_shell_cmd: [/etc] 16 [2017-05-02 04:22:55] [111.207.206.9] ifconfig
……
May 2 04:27:29 vm17218 root_shell_cmd: [/] 82 [2017-05-02 04:27:29] [03:32] source /etc/profile
May 2 04:28:11 vm17218 root_shell_cmd: [/] 83 [2017-05-02 04:28:11] [03:32] tail -30 messages
May 2 04:28:35 vm17218 root_shell_cmd: [/] 84 [2017-05-02 04:28:35] [03:32] tail ../var/log/messages
[root@vm17218 /]#