2010年05月15日 星期六 下午 02:01
在linux系统的环境下,不管是root用户还是其它的用户只有登陆
系统后用进入操作我们都可以通过命令history来查看历史记录,可是假如一台
服务器多人登陆,一天因为某人误操作了删除了重要的数据。
这时候通过查看历史记录( 命令:history)是没有 什么意义了。那有没有什么办法实现通过记录登陆后的IP地址和某用户名所操作的历史记录呢?答案:有的。 通过在/etc/profile里面加入以下代码就可以实现: #PS1=”`whoami`@`hostname`:”‘[$PWD]‘ #history USER_IP=`who -u am i 2>/dev/null| awk ‘{print $NF}’|sed -e ’s/[()]//g’` if [ "$USER_IP" = "" ] then USER_IP=`hostname` fi if [ ! -d /tmp/dbasky ] then mkdir /tmp/dbasky chmod 777 /tmp/dbasky fi if [ ! -d /tmp/dbasky/${LOGNAME} ] then mkdir /tmp/dbasky/${LOGNAME} chmod 300 /tmp/dbasky/${LOGNAME} fi export HISTSIZE=4096 DT=`date +” %Y%m%d_%H%M%S”` export HISTFILE=”/tmp/dbasky/${LOGNAME}/${USER_IP}.dbasky.$DT” chmod 600 /tmp/dbasky/${LOGNAME}/*dbasky* 2>/dev/null 可以看到在使用history命令的时候是没 时间显示,不知道这个命令是什么时候所执行,这个时候可以 编辑/etc/bashrc文件,加入如下三行: HISTFILESIZE=2000 HISTSIZE=2000 HISTTIMEFORMAT=”%Y%m%d-%H%M%S: ” export HISTTIMEFORMAT 保存后退出,关闭当前shell,并重新登录 这个时候,在~/.bash_History文件中,就有记录命令执行的时间了 用cat命令显示这个 文件,但是却会看到这个时间不是年月日显示的 |
http://hi.baidu.com/recall_s/blog/item/04d71aa06fe5ca87461064be.html