咱们在实际工做当中,都碰到过误操做、误删除、误修改过配置文件等等事件。对于没有堡垒机的公司来讲,要在linux系统上深究到底谁作过配置文件的修改、作过误删除是很头疼的事情,特别是遇到删库跑路的事件,更头大了。固然你能够经过history来查看历史命令记录,若是把history记录涂抹掉了,是否是啥也看不到了,若是你想查看在某个时间段究竟是谁经过vim编辑过某个文件呢?php

      那么,有什么办法能够看见这些操做呢,答案是必定有的,具体怎么实现呢,linux script命令正有如此强大的功能,能够知足咱们的需求,script能够记录终端会话,只要是linux6.3以上的系统,都会自带script命令,下面我用centos 7系统来测试一下。linux

二、配置vim

2.1 验证script命令(我这里是有的)centos

[root@localhost ~]# which script
/usr/bin/script

2.2 配置profile文件,在末尾添加以下内容:bash

[root@localhost ~]# vim /etc/profile

if [ $UID -ge 0 ]; then
        exec /usr/bin/script -t 2>/var/log/script/$USER-$UID-`date +%Y%m%d%H%M`.date -a -f -q /var/log/script/$USER-$UID-`date +%Y%m%d%H%M`.log
fi
 
参数:
    -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文件中就完事了,目录都没建立呢:

[root@localhost ~]# mkdir /var/log/script
#最好给个777的权限,我用744的权限反正也生效
 [root@localhost ~]# chmod 777 /var/log/script/

2.4 使环境生效

[root@localhost ~]# source  /etc/profile 

三、验证

    好了,你能够退出linux终端,在从新登陆一下,而后随便敲几个命令来看看。

[root@localhost ~]# cd /var/log/script/
[root@localhost script]# ll
total 16
-rw-r--r-- 1 root root   68 Dec 22 15:46 root-0-201712221545.date
-rw-r--r-- 1 root root  111 Dec 22 15:46 root-0-201712221545.log
-rw-r--r-- 1 root root    0 Dec 22 15:46 root-0-201712221546.date
-rw-r--r-- 1 root root 5693 Dec 22 15:46 root-0-201712221546.log

从上图能够看到,在/var/log/script目录中,已经产生了log和data为后缀的文件,而且还看到了root用户和UID号0。

    .log:记录了操做

    .data:能够回放操做

 

咱们用scriptreplay来回放一下操做,看下效果如何:

[root@localhost script]# scriptreplay root-0-201712221545.date root-0-201712221545.log

注意:先指定“时间文件 .data”,而后是“命令文件 .log”,不要颠倒了。

以上就完也了记录用户的全部操做,而且还能够随时查看,至关于有回放功能,像录像同样,之后定位是谁的问题就好找缘由了。