Linux - history
背景
CentOS的history命令输出内容单一,如果出现问题,不便于追踪和及时发现问题。
步骤
拷贝history_set.sh(脚本内容如下图)到目录/etc/profile.d/,login或su切换用户的时候,会执行该目录下的sh脚本。
#!/bin/bash
#Version:1.0
#Author:Camel先生
#Data:2023/5/26
#实现history格式化输出。
#定义变量用户
USER_IP=`who -u -m | awk '{print $NF}' | sed 's/[()]//g' | awk -F "." '{print $1}'`
#定义文件中最多只有HISTFILESIZE行
HISTFILESIZE=100000
#定义history命令输出的记录数
HISTSIZE=100000
#设置命令行格式
HISTTIMEFORMAT="[%F-%T][$USER][${USER_IP}] "
export HISTTIMEFORMAT
输出效果如下图:
其他
1、history只能显示当前用户的历史操作记录。
2、如果遇到系统被人为破坏,删除数据等情况,可以按照以下步骤去追踪。(1)查看日志/var/log/secure,找出远程登录服务器的用户(IP);(2)登录root用户,通过history命令,结合时间,找出异常操作。