在linux系統(tǒng)的環(huán)境下,不管是root用戶還是其它的用戶只有登陸系統(tǒng)后用進入操作我們都可以通過命令history來查看歷史記錄,可是假如一臺服務(wù)器多人登陸,一天因為某人誤操作了刪除了重要的數(shù)據(jù)。這時候通過查看歷史記錄(命令:history)是沒有什么意義了(因為history只針對登錄用戶下執(zhí)行有效,即使root用戶也無法得到其它用戶histotry歷史)。那有沒有什么辦法實現(xiàn)通過記錄登陸后的IP地址和某用戶名所操作的歷史記錄呢?答案:有的。
通過在/etc/profile里面加入以下代碼就可以實現(xiàn):
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
if [ "$USER_IP" = "" ]
then
USER_IP=`hostname`
fi
if [ ! -d /tmp/history ]
then
mkdir /tmp/history
chmod 777 /tmp/history
fi
export HISTFILESIZE=4096
export HISTFILE="/tmp/history/${LOGNAME}@${USER_IP}"
export HISTTIMEFORMAT="[%F %T][`whoami`][${USER_IP}] "
chmod 600 /tmp/history/*@* 2>/dev/null
source /etc/profile 使用腳本生效
退出用戶,重新登錄
上面腳本在系統(tǒng)的/tmp新建個dbasky目錄,記錄所有登陸過系統(tǒng)的用戶和IP地址(文件名),每當(dāng)用戶登錄/退出會創(chuàng)建相應(yīng)的文件,該文件保存這段用戶登錄時期內(nèi)操作歷史,可以用這個方法來監(jiān)測系統(tǒng)的安全性。