咱们在实际工做当中,都碰到过误操做、误删除、误修改过配置文件等等事件。对于没有堡垒机的公司来讲,要在linux系统上深究到底谁作过配置文件的修改、作过误删除是很头疼的事情,特别是遇到删库跑路的事件,更头大了。固然你能够经过history来查看历史命令记录,若是把history记录涂抹掉了,是否是啥也看不到了,若是你想查看在某个时间段究竟是谁经过vim编辑过某个文件呢?php
那么,有什么办法能够看见这些操做呢,答案是必定有的,具体怎么实现呢,linux script命令正有如此强大的功能,能够知足咱们的需求,script能够记录终端会话,只要是linux6.3以上的系统,都会自带script命令,下面我用centos 7系统来测试一下。linux
二、配置vim
2.1 验证script命令(我这里是有的)centos
参数:
-t 指明输出录制的时间数据
-f 若是须要在输出到日志文件的同时,也能够查看日志文件的内容,能够使用 -f 参数。PS:能够用于教学,两个命令行接-f能够实时演示
-a 输出录制的文件,在现有内容上追加新的内容
-q 能够使script命令以静默模式运行
以下图所示:ide
说明:测试
用户登陆执行的操做都会记录到/var/log/script/*.log 里(保存日志的目录根据你本身定义),咱们能够经过more、vi等命令查看目录里的日志。spa
注意:命令行
-
我这里把用户ID大于0的都记录下来了,你能够从新登陆用户,随便操做一些命令,查看生成的文件。日志
-
root用户的ID为0,新建普通用户的UID是从500开始的(经过cat /etc/password能够查看用户的UID),若是你不想记录root用户的操做,你把if里面的值改为500: if [ $UID - ge 500 ];
2.3 建立目录、赋予权限
你是否是觉得写了这条if语句在/etc/profile文件中就完事了,目录都没建立呢:
2.4 使环境生效
三、验证
好了,你能够退出linux终端,在从新登陆一下,而后随便敲几个命令来看看。
从上图能够看到,在/var/log/script目录中,已经产生了log和data为后缀的文件,而且还看到了root用户和UID号0。
.log:记录了操做
.data:能够回放操做
咱们用scriptreplay来回放一下操做,看下效果如何:
注意:先指定“时间文件 .data”,而后是“命令文件 .log”,不要颠倒了。
以上就完也了记录用户的全部操做,而且还能够随时查看,至关于有回放功能,像录像同样,之后定位是谁的问题就好找缘由了。