linux自定义history记录并保存所有用户操作历史记



概述:我们都知道在linux下,history记录着用户操作历史记录,但许多朋友发现,这个记录并不完善,特别是在同一个账号不同用户登录的情况下,history是无法区分谁来执行的命令的,或者查询起来比较麻烦,那么此时我们就可以自定义history的保存方式了,让所有用户的操作都保存下来,并且可以结合监控系统进行告警,甚至配合ELK系统保留起来,下面来看看实现方式。

1、编辑/etc/profile文件,加入下面的内容,重新登陆即可。

# vim /etc/profile

HISTFILESIZE=100000   #此案例中代表:单次登录用户history存储的最大命令记录条数 (默认情况下所有同一个用户操作记录都在 用户的.bash_history下。)
HISTSIZE=1000      #此案例中代表:当前用户输入history输出的记录数  (默认情况下所有用户都一样)

LOGIP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
LOG_DIR=/var/log/history
if [ -z $LOGIP ]
then
LOGIP=`hostname`
fi
if [ ! -d $LOG_DIR ]
then
mkdir -p $LOG_DIR
fi
if [ ! -d $LOG_DIR/${LOGNAME} ]
then
mkdir -p $LOG_DIR/${LOGNAME}
fi
LOGTM=`date +"%s"`
export HISTFILE="$LOG_DIR/${LOGNAME}/${LOGIP}-$LOGTM.txt"


此时,退出重新登陆服务器,经过增加上面的内容,我们可以去/var/log/history/{用户}/看到每次登陆的IP,登陆的时间,退出的时间,执行的内容等信息了。这里会有一个小问题,新增的用户默认没有用户记录保存目录会提示不存在,可以在新增用户的时候,或者登陆的时候自动创建,增加即可。







本文标签: linux 自定义 history记录

内容版权声明:【蓝色网居】部分资源来源于网络,如有侵犯您的所有权,请随时告知我们,我们将立即删除!感谢配合!

转载请注明出处:https://blog.ff56.cn/qita/1657874745.html


【手机扫一扫查看文本】

手机扫一扫 手机扫一扫查看文本 手机扫一扫





目录 python3 rewrite操作 linux系统优化 持久化AOF tail ssh代理 head命令 linux docker迁移 rediscluster 修改默认网段 远程仓库 history记录 保留和删除 转发 日志管理 shell判断 批量 常用案例 phpmyadmin安装 集群 自定义 docker 常用的linux