Chinaunix首页 | 论坛 | 博客
  • 博客访问: 482255
  • 博文数量: 401
  • 博客积分: 244
  • 博客等级: 入伍新兵
  • 技术积分: 2215
  • 用 户 组: 普通用户
  • 注册时间: 2012-08-04 10:02
文章分类

全部博文(401)

文章存档

2013年(37)

2012年(364)

分类: LINUX

2013-01-16 12:37:51

[导读]在linux系统的环境下,不管是root用户还是其它的用户只有登陆系统后用进入操作我们都可以通过命令history来查看历史记录,可是假如一台服务器多人登陆,一天因为某人误操作了删除了重要的数据。

这时候通过查看历史记录(命令:history)是没有什么意义了。那有没有什么办法实现通过记录登陆后的IP地址和某用户名所操作的历史记录呢?答案:有的。
 
  通过在/etc/profile里面加入以下代码就可以实现:
 
  PS1="
 
  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
 
  其实通过上面的代码不能看出来,在系统的/tmp新建个dbasky目录,在目录中记录了所有的登陆过系统的用户和IP地址,是不是觉得很方便呢?我们还可以用这个方法来监测系统的安全性。

原文出自【比特网】,转载请保留原文链接:

阅读(1028) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~