在linux下记录所有用户的登录和操作日志 (脚本介绍)

您所在的位置:网站首页 linux用户登录时间 在linux下记录所有用户的登录和操作日志 (脚本介绍)

在linux下记录所有用户的登录和操作日志 (脚本介绍)

2023-12-05 10:40| 来源: 网络整理| 查看: 265

1.一般来说我们可以用history命令来查看用户的操作记录,但是这个命令不能记录是那个用户登录操作的,也不能记录详细的操作时间,并且不是完整的。所以误操作而造成重要的数据丢失就很难查到是谁操作的。 在这里我们通过脚本代码来实现记录所有用户的登录操作日志: 编辑/etc/profile文件,在文件末尾加入下面代码 vi /etc/profile 全局的profile文件; ubuntu每个用户下都会有用户级的profile文件 例如 root ,ubuntu 用户

history USER=`whoami` USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'` if [ "$USER_IP" = "" ]; then USER_IP=`hostname` ## 获取ip 并且存到变量中 fi if [ ! -d /var/log/history ]; then mkdir /var/log/history ## 判断该目录下 是否有此目录如果没有则新建且开启 777权限 chmod 777 /var/log/history fi if [ ! -d /var/log/history/${LOGNAME} ]; then mkdir /var/log/history/${LOGNAME} ## 判断 /var/log/history目录下有没有 当前登录的用户文件夹,如果没有则创建且设置 300 权限 LOGNAME: 是当前登录的用户名 例如 ubuntu或root chmod 300 /var/log/history/${LOGNAME} fi ## 最后更改全局的HISTFILE变量 export HISTSIZE=4096 ##更改HISTFILE 大小 DT=`date +"%Y%m%d_%H:%M:%S"` export HISTFILE="/var/log/history/${LOGNAME}/${USER}@${USER_IP}_$DT" ## 全局更改 HISTFILE的日志存放目录 默认 每个用户下面都有自己的bash.history 这样做是为了集中管理记录这些命令日志, ##修改了全局变量 HISTFILE 就等于修改了 全部用户的HISTFILE设置。 ##所以 最终呈现的效果就是 在用户退出远程连接时 才会记录到日志中。 ## 此操作 其实 就是 更改了各个用户的history存储目录且日志文件名字有所变化其他的都跟原来一样。 chmod 600 /var/log/history/${LOGNAME}/*history* 2>/dev/null

注释: /var/log/history这是记录日志的存放位置,可以自定义。

2.在此目录下会以每一个用户为名新建一个文件夹 cd /var/log/history/ 在这里插入图片描述 在这里插入图片描述 3.使环境变量 立即生效

source /etc/profile 

4.此处虽然 可以实时监控与记录用户输入的命令与客户端连接ip 但是 文件仍然有被篡改删除的风险,建议实时传输到elk中。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3