centos 记录用户行为轨迹

遇到问题:公司增加了运维管理员,为确保服务器安全,和发生问题的时候好确认问题,需要记录每位服务器登陆者的行为轨迹。

解决问题:linux script 命令正有如此强大的功能。满足我们需求。script记录终端会话。

操作步骤:

我是centos6.5系统, 自带script命令,如果没有,大家需手动安装。

[root@myweb script]# cat /etc/redhat-release 
CentOS release 6.5 (Final)

编辑全局系统环境变量文件

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 目录需要其他用户有写的权限;

[root@myweb ~]# chmod 743 /mnt/log/script/
[root@myweb ~]# ll /mnt/log/script/
总用量 16
-rw-rw-r-- 1 dd dd 338 7月   1 01:27 dd-1003-201507010126.date
-rw-rw-r-- 1 dd dd 225 7月   1 01:27 dd-1003-201507010126.log
-rw-rw-r-- 1 dd dd 215 7月   1 01:31 dd-1003-201507010130.date
-rw-rw-r-- 1 dd dd 188 7月   1 01:31 dd-1003-201507010130.log
[root@myweb /]# ll -d /mnt/log/script/
drwxr---wx 2 root root 4096 7月   1 01:30 /mnt/log/script/

可以看到上图,对应的用户登录,会分别生成一个log和date为后缀的文件。log记录了操作,可以通过date文件 回放操作。通过scriptreplay 来回放

[aa@myweb dd]$ [root@myweb script]# ll
总用量 24
-rw-rw-r-- 1 dd dd 338 7月   1 01:27 dd-1003-201507010126.date
-rw-rw-r-- 1 dd dd 225 7月   1 01:27 dd-1003-201507010126.log
-rw-rw-r-- 1 dd dd 215 7月   1 01:31 dd-1003-201507010130.date
-rw-rw-r-- 1 dd dd 188 7月   1 01:31 dd-1003-201507010130.log
-rw-rw-r-- 1 dd dd 257 7月   1 01:36 dd-1003-201507010135.date
-rw-rw-r-- 1 dd dd 280 7月   1 01:36 dd-1003-201507010135.log
[root@myweb script]# scriptreplay dd-1003-201507010126.date dd-1003-201507010126.log 
[dd@myweb ~]$ ls
[dd@myweb ~]$ ls
[dd@myweb ~]$ ls
[dd@myweb ~]$ cd /mnt/
[dd@myweb mnt]$ ls
ls: 无法打开目录.: 权限不够
[root@myweb script]#

是 “时间文件”,然后是“命令文件”,不要颠倒。
以上,就完成了记录用户的所有操作记录。并且还有回放功能,像录像一样,非常方便查找问题。

 

转载至:http://mengsir.blog.51cto.com/2992083/1665628

 

 

 

二〇一五年七月一日 10:18:16

点赞