因為記錄下使用者登入後的每個指令就是必須的動作
系統 centos 6.9 x64
在 /etc/profile 最後新增下面三行
export HISTORY_FILE=/var/log/command_history/$USER-$UID-`date '+%Y-%m-%d'`.log
export PROMPT_COMMAND='{ date "+%Y-%m-%d %T ##### $(who am i |awk "{print \$1\" \"\$2\" \"\$5}") #### $(history 1 | { read x cmd; echo "$cmd"; })"; } >> $HISTORY_FILE'
exec /usr/bin/script -t 2>> /var/log/command_history/$USER-$UID-`date +%Y%m%d%H%M`.date -a -f -q /var/log/command_history/$USER-$UID-`date +%Y%m%d%H%M`.log
這樣會記錄下所有使用者登入後操作的每一個命令
記錄檔存放的地方需要有其他使用者可以寫的權限
chmod 743 /var/log/command_history
第一二行:將使用者本機操作指令存到記錄檔中
第三行:利用 script 指令將使用者所有操作存到檔案中,如果用 tail -f 去存取.log檔的話,可以即時看到使用者的行為
另外 script 記錄的檔案會把含控制碼都記錄下來、可以用 less -r file.log 或是 more file.log 去看
reference:
Linux利用script命令儲存使用者操作記錄的方法
用 Script 指令來紀錄輸出及輸入
0 意見:
張貼留言