Linux下查看用户登陆后的操作记录

Linux下查看用户登陆后的操作记录 在linux系统的环境下,不管是root用户还是其它的用户只有登陆系统后用进入操作我们都可以通过命令history来查看历史记录,可是假如一台 服务器多人登陆,一天因为某人误操作了删除了重要的数据。 这时候通过查看历史记录(命令:history)是没有什么意义了。那有没有什么办法实现通过记录登陆后的IP地址和某用户名所操作的历史记录 呢?答案:有的。 通过在/etc/profile里面加入以下代码就可以实现: PS1=`whoami`@`hostname`:'[$PW

Linux下查看用户登陆后的操作记录   在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'`         #print $NF取最后一个域的字段

  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

  其实通过上面的代码不能看出来,在系统的/tmp新建个dbasky目录,在目录中记录了所有的登陆过系统的用户和IP地址,是不是觉得很方便 呢?我们还可以用这个方法来监测系统的安全性。

 

可以看到在使用history命令的时候是没时间显示,不知道这个命令是什么时候所执行,这个时候可以编辑/etc/bashrc文件,加入如下三 行:   HISTFILESIZE=2000

HISTSIZE=2000


HISTTIMEFORMAT=”%Y%m%d-%H%M%S: ”


export HISTTIMEFORMAT



保存后退出,关闭当前shell,并重新登录


这个时候,在~/.bash_History文件中,就有记录命令执行的时间了



本文转自holy2009 51CTO博客,原文链接:http://blog.51cto.com/holy2010/326585

上一篇:HTTP访问的两种方式(HttpClient+HttpURLConnection)整合汇总对比(转)


下一篇:Android 即时通讯