linux监控指定用户操作,Linux 用户行为轨迹监控

摘要

history 可以保存历史命令, 执行时间, 但是 执行命令时的屏幕打印的信息无法获取, 不能直观再现操作现场情景。这时就可以使用script 命令, 来记录终端会话轨迹, 保存下来, 进行回放。(一些跳板机或者堡垒机都可以实现这些,并且更友好。)

1.0 script是什么?

script是一个linux 命令,在rhel 7 (rhel 6 中好像也有)系统中都已经集成了。它可以将一个会话的内容(你输入了什么,屏幕又打印了什么)保存到文件中,还是文本格式,可以很方便的查看。

同时还可以使用scriptreplay命令,将保存的文件,通过回放的方式展示出来。

这里只探索script 的使用方式, script 怎么实现的, 则不做讨论。

2.0 script使用

既然是一个系统命令,那用起来就很方便了,同时script又是基于会话进行记录屏幕内容的。所以通常将script写在/etc/profile中,这样每个用户登录时,都会触发记录。当然了,也可以指定用户记录。 如下:

base_dir="/var/log/scripts/`date +%Y`/`date +%m`/`date +%d`/$USER"

if [ $UID -ge 0 ]; then

test -d $base_dir || /usr/bin/mkdir -p $base_dir

exec /usr/bin/script -t 2&>$base_dir/$USER-$UID-`date +%H:%M:%S`.date -a -f -q $base_dir/$USER-$UID-`date +%H:%M:%S`.log

fi

可以看到这里指定了两个文件,*.data 和 *.log ,其中.log 是保存屏幕内容的,.data 用来记录时间戳,这些都是文本文件,可以直接查看。

这些路径可以自己定义,为了方便查看,我做成了这种结构:

50.html

script 还有些其他参数,可以找些资料了解下。这个数据存储的目录结构可以根据实际情况,进行定义。因为我这里登录的账号和频率较高,所以才以用户为最小单位。

2.1 记录指定用户会话

回到上面的配置,每个用户登录都会加载 /etc/profile 文件,它其实就是一个shell脚本,我这里通过一个if 判断,来指定uid 大于等于的账号,触发script,也就是所有用户都会记录会话。

如果对指定用户就可以通过这种方式,进行设置,很方便。

同时这里记录的数据,如果数据量增大或者担心被破坏,可以同步的将这些内容,发送到远端服务器,还可以写脚本自动清理 例如:30天前的文件。

3.0 scriptreplay 回放操作记录

回放也和简单, 直接使用 scriptreplay , 依次传入两个文件, 时间戳和数据文件(顺序不要错)。

scriptreplay root-0-10\:03\:57.date root-0-10\:03\:57.log

4.0 此处有坑

https://www.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值