centos下使用script监控用户操作
1、测试环境
[root@centos ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
[root@centos ~]#
2、检查script命令,如果不存在可以使用yum安装
[root@centos ~]# which script
/usr/bin/script
[root@centos ~]#
3、创建日志目录
创建监控日志存放目录,授权其他用户可以写入,只能追加,但不能删除
[root@centos ~]# mkdir -p /data/logs/script
[root@centos ~]# chmod o+w /data/logs/script
[root@centos ~]# chattr +a /data/logs/script
[root@centos ~]# lsattr -d /data/logs/script
-----a---------- /data/logs/script/
4、配置profile
[root@centos ~]# vim /etc/profile
#在文件末尾加入,只要uid大于0的都会被记录
if [ $UID -ge 0 ]; then
exec /usr/bin/script -t 2>/data/logs/script/'$USER-$UID'-'$(date +%Y%m%d%H%M)'.data -a -f -q /data/logs
/script/$USER-$UID-$(date +%Y%m%d%H%M).log
fi
参数说明:
-t :指明输出录制的时间数据;
-a :输出录制的文件,在现有内容上追加新的内容;
-f :在输出到日志文件的同时,也可以查看日志文件的内容;
-q :可以使script命令以静默模式运行;
5、加载配置生效
[root@centos ~]# source /etc/profile
[root@centos ~]#
6、验证
[root@centos script]# su - yunwei
Last login: Sun Mar 5 21:04:32 CST 2023 on pts/2
[yunwei@centos ~]$
切到非root用户,可以在/data/logs/script目录下产生相应的日志文件
[yunwei@centos script]$ ll
total 284
-rw-rw-r-- 1 yunwei yunwei 0 Mar 5 21:25 yunwei-1005-202303052125.data
-rw-rw-r-- 1 yunwei yunwei 442 Mar 5 21:25 yunwei-1005-202303052125.log
[yunwei@centos script]$
log文件是操作的文本记录,data文件是相当于登陆会话的录屏
7、历史回放
[root@centos script]# scriptreplay yunwei-1005-202303052125.data yunwei-1005-202303052125.log
脚本整理,
[root@centos ~]# cat script.sh
#!/bin/bash
logdir="/data/logs/script"
if [ ! -d $logdir ];then
echo "no"
mkdir $logdir
fi
chmod o+w $logdir
chattr +a $logdir
lsattr $logdir -d
cat >> /etc/profile << EOF
if [ \$UID -ge 0 ]; then
exec /usr/bin/script -t 2>$logdir/\$USER-\$UID-\$(date +%Y%m%d%H%M).data -a -f -q $logdir/\$USER-\$UID-\$(date +%Y%m%d%H%M).log
fi
EOF