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
可以隨時查看,定位問題好找原因。