Linux下查看使用者登陸後的操作記錄 在linux系統的環境下,不管是root使用者還是其它的使用者只有登陸系統後用進入操作我們都可以通過命令history來查看記錄,可是假如一台 伺服器多人登陸,一天因為某人誤操作了刪除了重要的資料。 這時候通過查看記錄(命令:history)是沒有什麼意義了。那有沒有什麼辦法實現通過記錄登陸後的IP地址和某使用者名稱所操作的記錄 呢?答案:有的。 通過在/etc/profile裡面加入以下代碼就可以實現: PS1="`whoami`@`hostname`:"'[$PWD]' history USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'` #print $NF取最後一個域的欄位 if [ "$USER_IP" = "" ] then USER_IP=`hostname` fi if [ ! -d /tmp/dbasky ] then mkdir /tmp/dbasky chmod 777 /tmp/dbasky fi if [ ! -d /tmp/dbasky/${LOGNAME} ] then mkdir /tmp/dbasky/${LOGNAME} chmod 300 /tmp/dbasky/${LOGNAME} fi export HISTSIZE=4096 DT=`date " %Y%m%d_%H%M%S"` export HISTFILE="/tmp/dbasky/${LOGNAME}/${USER_IP} dbasky.$DT" chmod 600 /tmp/dbasky/${LOGNAME}/*dbasky* 2>/dev/null 其實通過上面的代碼不能看出來,在系統的/tmp建立個dbasky目錄,在目錄中記錄了所有的登陸過系統的使用者和IP地址,是不是覺得很方便 呢?我們還可以用這個方法來監測系統的安全性。 可以看到在使用history命令的時候是沒時間顯示,不知道這個命令是什麼時候所執行,這個時候可以編輯/etc/bashrc檔案,加入如下三行: HISTFILESIZE=2000 HISTSIZE=2000 HISTTIMEFORMAT=”%Y%m%d-%H%M%S: ” export HISTTIMEFORMAT 儲存後退出,關閉當前shell,並重新登入 這個時候,在~/.bash_History檔案中,就有記錄命令執行的時間了 |