上午出现一件事情,同事用root用户执行一条命令,本意是想将当前目录下的所有.bash_profile和.svn等等之类的所有以点号起头的隐藏文件和目录都改为另一用户和属组,命令为chown -R zzzz:zzzz .*。却不料这条命令的实际结果,却是将其上层所有目录下的文件,及上上层目录本身的属组,全部变为zzzz:zzzz。修复之后,又想起以前考虑的问题,如何查找root用户执行的每一条命令和时间以及远端IP?
.bash_histroy保存了每一条命令,last命令读取wtmp文件显示每次用户登录的IP和时间以及终端号等,那么现在一个关键的bash_history文件中能否记录每条命令的时间就成为关键了。
在/etc/目录下的bashrc文件中添加如下几行:
HISTFILESIZE=2000 //定义了在 .bash_history 中保存命令的记录总数 HISTSIZE=2000 //定义了 history 命令输出的记录数 #HISTIMEFORMAT="%Y%m%d-%H%M%S: " //定义了执行命令的时间格式 HISTTIMEFORMAT='%F %T ' //这个方法显示更清晰。
其实只要最后一行就能加上时间。
由于bashrc只在用户登录时才会调用,所以如果能在系统安装完成后马上加入,效果最好。
查看,用cat 或vi .bash_history文件,会看到类似
#1347434314 vi .bash_profile #1347434326 vi .bash_profile #1347434332 vi .bash_history #1347434343 ls -aaaa #1347434349
的内容,#号内的是unix时间。
可用histroy |more命令来格式化输出。
1001 2012-09-12 15:19:16vi .bash_history 1002 2012-09-12 15:19:23ls 1003 2012-09-12 15:19:28vi .bash_history 1004 2012-09-12 15:20:23history
原创文章,作者:苏葳,如需转载,请注明出处:https://www.swmemo.com/411.html
评论列表(4条)
好文章,内容气吞山河.禁止此消息:nolinkok@163.com
好文章,内容惊心动魄.禁止此消息:nolinkok@163.com
不错的文章,内容远见卓识.禁止此消息:nolinkok@163.com
不错的文章,内容学富五车.禁止此消息:nolinkok@163.com