Linux查看历史操作记录

在linux系统的环境下,无论是root用户还是其他用户,只有登录系统后,我们才能通过命令历史查看历史,但是如果一台服务器多个人登录,有一天因为某人的误操作,重要数据被删除。此时查看历史(命令:history)是没有意义的(因为历史只对登录用户有效,即使是root用户也无法获取其他用户的历史)。有什么方法可以通过记录IP地址和一个登录后的用户名来实现操作的历史记录?回答:是的。

这可以通过在/etc/profile中添加以下代码来实现:

PS 1 = " ` whoami `@ ` hostname `: " '[$ PWD]'

历史

USER _ IP = ` who-u am I 2 & gt;/dev/null | awk“{ print $ NF }”| sed-e ' s/[()]//g ' ` s

if[" $用户IP" = "" ]

然后

USER_IP=`hostname '

船方不负担装货费用

如果[!-d /tmp/dbasky ]

然后

mkdir /tmp/dbasky

chmod 777 /tmp/dbasky

船方不负担装货费用

如果[!-d/tmp/DBA sky/$ {日志名} ]

然后

mkdir /tmp/dbasky/${LOGNAME}

chmod 300 /tmp/dbasky/${LOGNAME}

船方不负担装货费用

导出历史大小=4096

DT = ` date "+% Y-% M-% d _ % H:% M:% S " ` d

export hist file = "/tmp/DBA sky/$ { LOGNAME }/$ { USER _ IP } DBA sky。$DT "

chmod 600/tmp/DBA sky/$ { LOGNAME }/* DBA sky * 2 & gt;/dev/null

Source /etc/profile使用脚本生效。

注销用户,然后重新登录。

上面的脚本在系统的/tmp中创建了一个新的dbasky目录,记录了所有登录到系统的用户及其IP地址(文件名)。每当用户登录/退出时,都会创建一个相应的文件,保存该用户在登录期间的操作历史。这种方法可以用来监控系统的安全性。

root@zsc6:[/tmp/dbasky/root]ls

10.1.80 . 47 DBA sky . 2013-10-24 _ 12:53:08

root @ zsc 6:[/tmp/DBA sky/root]cat 10.1.80 . 47 DBA sky . 2013-10-24 _ 12:53:08

查看12:53:08从10.1.80.47登录的root用户操作命令的历史。