不知道作為運維的你有沒有體會過這樣一種情況: 當某天你的伺服器發生異常情況,例如某個文件莫名被刪除了,或者某個文件被人私自篡改,甚至是發生安全事件等等,這時你的經理找到你要你查個水落石出,於是你想看看history里有沒有一些異常的操作,當你在終端里敲完history命令之後,看到的結果,卻敵我難分 ...
不知道作為運維的你有沒有體會過這樣一種情況:
當某天你的伺服器發生異常情況,例如某個文件莫名被刪除了,或者某個文件被人私自篡改,甚至是發生安全事件等等,這時你的經理找到你要你查個水落石出,於是你想看看history里有沒有一些異常的操作,當你在終端里敲完history命令之後,看到的結果,卻敵我難分,例如某個rm -rf的操作到底是自己人做的操作還是有人未經同意做得操作呢,此時的結果看不到詳細的信息,只能看到操作的指令,但是你很想看這些指令到底是在什麼時候執行的,哪個用戶執行的,哪個終端執行的,甚至是終端的ssh遠程IP是多少等等,遇到這些情況你可能在一陣噼里啪啦之後一籌莫展,不知道從何下手。但是別擔心,今天給大家推出解決方案:
註意事項(必讀):
- 此方案會導致所有存在的歷史記錄變成當前日期的時間,如果你們決定忽略以前的歷史記錄,那麼建議先敲history -c清空歷史記錄,再按照以下步驟實施就是了。
- 建議新機器第一件事就是部署該方案
1,編輯/etc/profile
在文件內容末尾添加如下內容:
1 w -uh>$HOME/.cache_tty;grep "`tty|cut -d '/' -f3,4`" $HOME/.cache_tty|awk '{print $3}'>$HOME/.cache_tty_ip 2 export HISTTIMEFORMAT="`whoami` `tty|cut -d '/' -f3,4` $(w -uh>$HOME/.cache_tty;grep "`tty|cut -d '/' -f3,4`" $HOME/.cache_tty|awk '{print $3}') %F %T "
示例圖:
2,保存退出然後敲history命令驗證是否生效:
1 history
如下圖可以看出已經生效: