原生的history命令,只能看到輸入的命令歷史,看不到什么時候,誰輸入的。
特此在網上找到修改history命令的辦法:
1.用root用戶打開系統環境變量設置的文件
vim /etc/profile
2.在最下面,插入下面幾行代碼
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'` export HISTTIMEFORMAT="%F %T `whoami` ${USER_IP} " export HISTSIZE=10000 #history 命令的記錄數量 export HISTFILESIZE=10000 #記錄文件的行數 export HISTIGNORE='ls*:ll' #忽略的命令 export PROMPT_COMMAND="history 1 >> /var/log/.myhistory" #將命令記錄輸出到文本中
3.讓環境變量生效
source /etc/profile
4.創建日志文件並賦予其他用戶讀寫權限
touch /var/log/.myhistory chmod 666 /var/log/.myhistory
以后再輸入history命令,就會變成下面的樣子了,有時間,有用戶,有ip,而且保存最近1萬條記錄。
哼哼,再也不怕背鍋了
注意,history命令只能看到本用戶下輸入的命令,所以其實那個who am i沒什么用。ip顯示的也是當前用戶登錄的ip,你換個機器,history命令里記錄的ip也會變,所以ip的歷史也是假的。
所以需要將歷史記錄輸出到文本中,這種方式改完后,/var/log/.myhistory文件中才是真正意義上的所有用戶命令歷史,不過有個缺點,長按回車,會導致大量上一次的命令被重復記錄在文件中,以后再想辦法優化吧。