美文网首页
CentOS7 配置history记录用户所执行过的命令

CentOS7 配置history记录用户所执行过的命令

作者: 楍跑的鸟 | 来源:发表于2020-06-01 14:53 被阅读0次

  我常常在想CentOS系统中有没有一种命令,能定位到是哪个用户在哪个时间在哪执行的命令。后来我只找到 history 命令。history是一个很重要的命令,它能显示出之前在shell中执行过的命令,如果服务器发生异常,可以从这些命令中分析造成问题的原因。但是history显示的信息有局限性,默认保存最近的1000条命令,从历史信息中只能看到某个命令的执行有可能导致系统出了问题,对于进一步的追踪问题却无济于事。
  那我为啥还要说这个命令呢?其实我们可以根据history命令进行一系列的修改,使其能达到我们的需求。废话不多说。直接开始。CentOS中具体配置如下:

  • 在/etc/profile中加入以下脚本
#history
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
HISTDIR=/usr/share/.history
if [ -z $USER_IP ]
then
USER_IP=`hostname`
fi
if [ ! -d $HISTDIR ]
then
mkdir -p $HISTDIR
chmod 777 $HISTDIR
fi
if [ ! -d $HISTDIR/${LOGNAME} ]
then
mkdir -p $HISTDIR/${LOGNAME}
chmod 300 $HISTDIR/${LOGNAME}
fi
export HISTSIZE=4000
DT=`date +%Y%m%d_%H%M%S`
export HISTFILE="$HISTDIR/${LOGNAME}/${USER_IP}.history.$DT"
export HISTTIMEFORMAT="[%Y.%m.%d %H:%M:%S]"
chmod 600 $HISTDIR/${LOGNAME}/*.history* 2>/dev/null
  • 脚本的作用:
    把每个用户执行的命令记录在/usr/share/.history下以用户名命名的目录下,
    历史记录文件名根据用户ip和时间命名。打开/usr/share/.history目录会发现里边保存了之前记录的历史命令文件.(注:下面显示内容,是执行生效命令之后才会显示如下的。)

    image.png
  • 在/etc/bashrc中加入几个环境变量,用于history命令显示用户ip等内容

#history
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'` 
HISTFILESIZE=4000
HISTSIZE=4000
HISTTIMEFORMAT="%F %T ${USER_IP} `whoami` "
export HISTTIMEFORMAT

在终端中输入 history,显示效果如下(注:下面显示内容,是执行生效命令之后才会显示如下的。):

image.png
  • 脚本的作用:
    显示时间戳,ip,用户名等信息。

生效

把代码写入脚本文件之后,需要使其脚本生效。有两种方式:

  • 重启服务器
  • 执行一下命令即可
[root@localhost ~]# source /etc/profile
[root@localhost ~]# source /etc/bashrc 

相关文章

  • CentOS7 配置history记录用户所执行过的命令

      我常常在想CentOS系统中有没有一种命令,能定位到是哪个用户在哪个时间在哪执行的命令。后来我只找到 hist...

  • Linux命令 history 2019-02-20

    history命令 history命令:用于显示历史记录和执行过的指令命令。history命令读取历史命令文件中的...

  • note_4.2_Shell

    命令历史:shell进程会其会话中保存此前用户提交执行过的命令;~]# history定制history的功能,可...

  • bash 特性

    一、命令历史特性:history shell进程会其会话中保存此前用户提交执行过的命令 history是shell...

  • 2020-04-08 history查看历史命令

    1.history命令 “history”命令就是历史记录。它显示了在终端中所执行过的所有命令的历史。 histo...

  • linux history加入时间戳

    history命令:用于显示历史记录和执行过的指令命令。history命令读取历史命令文件中的目录到历史命令缓冲区...

  • Linux命令学习-history命令

    Linux中,history命令的作用是显示历史记录和执行过的命令。 查看历史所有命令执行记录 查看最近的13条历...

  • 修改Kali Linux终端历史记录大小

    修改KaliLinux终端历史记录大小 在KaliLinux终端,用户可以使用history命令查看执行的命令历史...

  • history

    history显示近期执行的命令 显示history保存多少条命令 显示日志记录文件 设置history的忽略 修...

  • linux history命令

    history命令history -c 清空历史所有输入命令记录!序号 执行历史命令中序号为2的命令例如:

网友评论

      本文标题:CentOS7 配置history记录用户所执行过的命令

      本文链接:https://www.haomeiwen.com/subject/yetszhtx.html