Linux记录用户操作记录
如下方法在centos5.x系统中通过.
在/etc/profile文件里加入如下语句:
1)使用script记录UID大于500的用户的所有操作,类似屏幕截图?
-
- if [ $UID -gt 500 ]
- then
- ????exec /usr/bin/script -t 2>/tmp/$USER-$UID-$(date +%Y%m%d%H%M).date -a -f -q /tmp/$USER-$UID-$(date +%Y%m%d%H%M).log
- fi
script 可以把当前用户的所有键盘操作、屏幕输出以及错误信息等等保存到一个文件中;
使用exec可以防止用户自行退出script,当输入exit退出时,会连当前的终端一起关掉;exec还有执行完当前命令就退出当前shell的特性,也就是说,要把exec命令放在profile最后一行执行,因为exec后面的命令都执行不到。
为什么执行了上边的命令没有退出当前shell呢,因为script命令一直在持续运行,也就是说在持续记录用户的操作,并不是说执行一次马上就结束了。
-a? 用append的形式在文件中追加,若不适用此参数,同名的记录文件会被覆盖,而且没有提示;
-f Flush output after each write;
-q be?quiet
-t 生成时间文件,有了这个文件,可以使用?scriptreplay 命令回放;
如:scriptreplay username-500-201111262310.date username-500-20111126231.log
???要注意“时间文件”和“记录文件”的顺序,不要颠倒了;
要保证该文件当前登录用户可写,不然无法正常记录!
因为文件是实时更新的,如果tail、more自己的记录文件,会形成很有意思的无限循环。
2)使用环境变量记录用户操作
在/etc/profile和/etc/bashrc中添加以下命令,并 source 一次
免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。