设为首页 收藏本站
查看: 839|回复: 0

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

[复制链接]
YunVN网友  发表于 2018-8-23 06:00:00 |阅读模式
  群里面有个朋友提了这样的两个问题,
  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软件包提供的。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-555225-1-1.html 上篇帖子: FreeBSD上Enter full pathname of shell or RETURN for /bin/sh 问题的解决 下篇帖子: Shell编程笔记(日志文件、信号、trap捕捉信号、eval)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表