灯火互联
管理员
管理员
  • 注册日期2011-07-27
  • 发帖数41778
  • QQ
  • 火币41290枚
  • 粉丝1086
  • 关注100
  • 终身成就奖
  • 最爱沙发
  • 忠实会员
  • 灌水天才奖
  • 贴图大师奖
  • 原创先锋奖
  • 特殊贡献奖
  • 宣传大使奖
  • 优秀斑竹奖
  • 社区明星
阅读:1832回复:0

Linux下查看历史操作记录

楼主#
更多 发布于:2012-08-27 15:01

last命令可以用来查看用户的登陆记录。

history命令可以查看命令的执行历史。
  www.atcpu.com  
常用日志文件如下:
    access-log   纪录HTTP/web的传输
    acct/pacct   纪录用户命令
    aculog     纪录MODEM的活动
    btmp      纪录失败的纪录
    lastlog     纪录最近几次成功登录的事件和最后一次不成功的登录
    messages    从syslog中记录信息(有的链接到syslog文件)
    sudolog     纪录使用sudo发出的命令
    sulog      纪录使用su命令的使用
    syslog     从syslog中记录信息(通常链接到messages文件)
    utmp      纪录当前登录的每个用户
    wtmp      一个用户每次登录进入和退出时间的永久纪录
    xferlog     纪录FTP会话

但是~/.bash_history里面是没有时间的记录的,可以用下面的脚本来记录时间。
通过在/etc/profile里面加入以下代码就可以实现:

  PS1="`whoami`@`hostname`:"'[$PWD]'
  history  www.atcpu.com  
  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地址,是不是觉得很方便 呢?我们还可以用这个方法来监测系统的安全性。
  www.atcpu.com  
可以看到在使用history命令的时候是没时间显示,不知道这个命令是什么时候所执行,这个时候可以编辑/etc/bashrc文件,加入如下三行:

HISTFILESIZE=2000
HISTSIZE=2000
HISTTIMEFORMAT=”%Y%m%d-%H%M%S: ”
export HISTTIMEFORMAT

保存后退出,关闭当前shell,并重新登录
这个时候,在~/.bash_History文件中,就有记录命令执行的时间了





喜欢0 评分0
游客

返回顶部