Linux下查看用户登录后的操做记录及history命令显示时间

2021年09月15日 阅读数:1
这篇文章主要向大家介绍Linux下查看用户登录后的操做记录及history命令显示时间,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。


在linux系统的环境下,无论是root用户仍是其它的用户只有登录系统后用进入操做咱们均可以经过命令history来查看历史记录,但是假如一台服务器多人登录,一天由于某人误操做了删除了重要的数据,而咱们又不知道是谁在上面作了误操做,这时咱们如何记录下是哪一个ip作了哪些操做呢?linux

    这时候经过查看历史记录(命令:history)是没有什么意义了。那有没有什么办法实现经过记录登录后的IP地址和某用户名所操做的历史记录呢?shell

   经过在/etc/profile里面加入如下代码就能够实现:   vim

  
  
  1. #vim /etc/profile 
  2.  
  3. USER_IP=`who -u am i 2>/dev/null|awk '{print $NF}' | sed -e 's/[()]//g'` 
  4. if [ "$USER_IP" = "" ] 
  5.  then 
  6.  USER_IP=`hostname` 
  7.  fi 
  8.  if [ ! -d /tmp/dbasky ] 
  9.  then 
  10.  mkdir /tmp/dbasky 
  11.  chmod 777 /tmp/dbasky 
  12.  fi 
  13.  if [ ! -d /tmp/dbasky/${LOGNAME} ] 
  14.  then 
  15.  mkdir /tmp/dbasky/${LOGNAME} 
  16.  chmod 300 /tmp/dbasky/${LOGNAME} 
  17.  fi 
  18.  export HISTSIZE=4096 
  19. DT=`date +"%Y%m%d_%H%M%S"` 
  20. export HISTFILE="/tmp/dbasky/${LOGNAME}/${USER_IP}.dbasky.$DT" 
  21. chmod 600 /tmp/dbasky/${LOGNAME}/*dbasky* 2>/dev/null 
  22. #
  23. # source /etc/profile

 能够看到在使用history命令的时候是没时间显示,不知道这个命令是何时所执行,这个时候能够bash

编辑/etc/bashrc文件,加入以下三行:服务器

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

保存后退出,关闭当前shell,并从新登陆
这个时候,在~/.bash_History文件中,就有记录命令执行的时间了
用cat命令显示这个文件,可是却会看到这个时间不是年月日显示的spa