首页 电脑 电脑学堂 查看内容

Shell脚本:实时监控用户操作

2011-4-15 10:54 1209 0

摘要:   群里面有个朋友提了这样的两个问题,  1、如何看到系统中的用户什么时间对密码进行了修改  2、如何知道某个用户,什么时间登录过系统,什么时间退出系统,在这段时间做了哪些操作。  第一个脚本是写出来...
关键词: 用户 scriptreplay 时间 系统 文件 log 内容 一个 yufei 监控

  群里面有个朋友提了这样的两个问题,  1、如何看到系统中的用户什么时间对密码进行了修改  2、如何知道某个用户,什么时间登录过系统,什么时间退出系统,在这段时间做了哪些操作。  第一个脚本是写出来了,但是通过history来监控的,可是这个history又不是实时的,只有在用户退出后才记录内容,而且,这个文件用户可以对其手术,所以不太完美。  关于第二个问题,想不到一个可行的办法,就在网上找资料,无意中发现一个好东东——用scritp可以记录用户的操作,相当于录像一样。是不是很适合我们开头的两个问题的解决方案。于是就有了下面的文章。  分析方案  1、我们要监控用户的情况,当然root用户就排除在外了,毕竟这个是我们自己。  2、系统的用户无需监控  3、所监控的用户操作写入一个日志  4、写入系统中的profile  5、测试效果  实施方案  我们要在系统的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/test/$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软件包提供的。
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部