script 实时监控用户操作

来源:互联网 发布:淘宝第一会所邀请码 编辑:程序博客网 时间:2024/06/05 09:52

我们要在系统的profile文件中增加下面的内容,

#记录所有用户的操作记录,排除系统中的用户和root用户
if [ $UID -ge 500 ]; then
exec /usr/bin/script -a -f -q /var/log/$USER-$UID-`date +%Y%m%d%H%M`.log
fi

这样,只要有用户登陆到你的系统,那么系统就会自动对其操作进行记录,用户的任何一个操作都记录到了/var/log/用户名-用户ID-时间.log中了。这个记录文件大家可以自己设置。
关于记录的文件内容,可以用下面三种方法来查看
cat yufei-500-201104141312.log
head -n -1 yufei-500-201104141312.log
tail -n +1 yufei-500-201104141312.log

当然我们可以通过|grep来过滤我们想要的内容
注意:查看上面的LOG,不能用vi more less这三个命令来查看,特别是more和less你什么也看不到。vi看到的里面有很多的乱码。

上面的方式存在一个缺点,就是不能记录到交互的内容(实际上是记录了,只是我们看不到),那么我们可以通过script的scriptreplay对操作进行回放,这样,就对用户的操作一览无遗了。
如果要使用scriptreplay的回放功能,需要跟时间结合,所以需要使用-t进行记录时间。
vi /etc/profile
修改为下面的内容:
if [ $UID -ge 500 ]; then
exec /usr/bin/script -t 2>/var/log/$USER-$UID-`date +%Y%m%d%H%M`.date  -a -f -q /var/log/$USER-$UID-`date +%Y%m%d%H%M`.log
fi

这时候就保存了时间和记录文件,我们就可以通过scriptreplay来查看用户的一举一动了。
scriptreplay的格式是
scriptreplay 时间文件 记录文件

scriptreplay yufei-500-201104141336.date yufei-500-201104141336.log

注:
script和scriptreplay都是由util-linux-ng软件包提供的。

原创粉丝点击