转:http://mengsir.blog.51cto.com/2992083/1665628
遇到问题:公司增加了运维管理员,为确保服务器安全,和发生问题的时候好确认问题,需要记录每位服务器登陆者的行为轨迹。
解决问题:linux script 命令正有如此强大的功能。满足我们需求。script记录终端会话。
操作步骤:
-
我是centos6.3系统, 自带script命令,如果没有,大家需手动安装。
-
vim /etc/profile
在末尾添加:
if [ $UID -ge 1000 ]; then
exec /usr/bin/script -t 2>/mnt/log/script/$USER-$UID-`date +%Y%m%d%H%M`.date -a -f -q /mnt/log/script/$USER-$UID-`date +%Y%m%d%H%M`.log
fi
这样用户登陆后执行的操作都会记录到/mnt/log/script/*.log(目录自己根据服务器目录定义)里,我们可以通过more或vi来进行查看。
我这里是把用户ID 大于1000的都记录下操作,你可以重新登录用户,操作一些命令,查看生成的文件。
另外,/mnt/log/script 目录需要其他用户有写的权限;
chmod 743 /mnt/log/script
可以看到上图,对应的用户登录,会分别生成一个log和date为后缀的文件。log记录了操作,可以通过date文件 回放操作。通过scriptreplay 来回放注意:先是 “时间文件”,然后是“命令文件”,不要颠倒。
以上,就完成了记录用户的所有操作记录。并且还有回放功能,像录像一样,非常方便查找问题。