Linux下監控用戶操作軌跡

  • 2019 年 12 月 13 日
  • 筆記

在實際工作當中,都會碰到誤刪除、誤修改配置文件等事件。如果沒有堡壘機,要在linux系統上查看到底誰對配置文件做了誤操作,特別是遇到刪庫跑路的事件,當然可以通過history來查看歷史命令記錄,但如果把history記錄塗抹掉了,照樣啥也看不到了。

不要擔心。

linux script命令可以滿足我們的需求,script可以記錄終端會話,只要是linux6.3以上的系統,都會自帶script命令,下面我用centos 7.4系統來測試一下。

1 查看系統版本

[root@aliyun ~]# cat /etc/redhat-release  CentOS Linux release 7.4.1708 (Core) 

2 驗證script命令

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

3 創建目錄、賦予許可權

[root@aliyun ~]# mkdir /var/log/script  [root@aliyun ~]# chmod 777 /var/log/script/

4 配置profile文件

在末尾添加如下內容:

[root@aliyun ~]# 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

用戶登錄執行的操作都會記錄到/var/log/script/*.log里,可以通過more、vi等命令查看目錄里的日誌。

參數說明:

-t

指明輸出錄製的時間數據;

-f

在輸出到日誌文件的同時,也可以查看日誌文件的內容;

-a

輸出錄製的文件,在現有內容上追加新的內容;

-q

可以使script命令以靜默模式運行;

5 使配置生效

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

6 驗證

[root@aliyun ~]# exit  exit    連接斷開  連接成功    Last login: Thu Aug  9 10:30:55 2018 from 122.97.179.119    Welcome to Alibaba Cloud Elastic Compute Service !    [root@aliyun ~]# date  Thu Aug  9 10:48:05 CST 2018  [root@aliyun ~]# cd /var/log/script/  [root@aliyun script]# ll -h  total 412K  -rw-r--r-- 1 root root  148 Aug  9 10:47 root-0-201808091043.date  -rw-r--r-- 1 root root  249 Aug  9 10:47 root-0-201808091043.log  -rw-r--r-- 1 root root    0 Aug  9 10:47 root-0-201808091047.date  -rw-r--r-- 1 root root 404K Aug  9 10:49 root-0-201808091047.log

.log)操作歷史;

.data)回放操作;

在/var/log/script目錄中,已經產生了log和data為後綴的文件,並且還看到了root用戶和UID號。

可以用scriptreplay命令回放操作:

先指定時間文件(.data),再指定命令文件(.log)。

[root@aliyun script]# scriptreplay root-0-201808091043.date root-0-201808091043.log

可以隨時查看,定位問題好找原因。