history命令追查登入的使用者和時間

淡定的DBA發表於2014-03-26

Linux檢視History記錄加時間,這個對於系統管理員還是很有幫助的,原因不解釋,你懂得!
ora11g$
 history  |  more  
1    rlwrap sqlplus / as sysdba
2    rlwrap sqlplus / as sysdba
3    date
4    rlwrap sqlplus / as sysdba
  但是這裡只顯示了命令,並沒有顯示執行命令的時間,因為儲存歷史命令的~/.bash_history裡並沒有儲存時間。  

透過設定環境變數 export HISTTIMEFORMAT="%F %T `whoami` " 給history加上時間戳  

ora11g$ export HISTTIMEFORMAT="%F %T `whoami` "  

ora11g$ history 
1  2014-03-25 21:29:53 oracle rlwrap sqlplus / as sysdba
2  2014-03-25 21:29:59 oracle rlwrap sqlplus / as sysdba  
 
3 2014-03-25 21:31:23 oracle date
4 2014-03-25 21:31:43oracle rlwrap sqlplus / as sysdba

可以看到,歷史命令的時間,使用者已經加上了,但是.bash_history裡並沒有加上這個時間。
其實這個時間記錄是儲存在當前shell程式記憶體裡的,如果你logout並且重新登入的話會發現你上次登入時執行的那些命令的時間戳都為同一個值,即當時logout時的時間。  

 

儘管如此,對於加上screen的bash來說,這個時間戳仍然可以長時間有效的,畢竟只要你的server不重啟,screen就不會退出,因而這些時間就能長時間保留。
你在root使用者下也可以使用echo 'export HISTTIMEFORMAT="%F %T `whoami` "' >> /etc/profile 然後source一下就OK 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27144762/viewspace-1129567/,如需轉載,請註明出處,否則將追究法律責任。

相關文章