運維與研發人員一多,登錄服務器操作的情況越來越常見,爲了安全,有必要對登錄系統的每次操作都進行記錄,以方便後期瞭解,掌握,審計。
簡單解決辦法:
修改/etc/profile文件,在最後增加如下內容:
HISTFILESIZE=2000
HISTTIMEFORMAT="%Y%m%d-%H%M `whoami` "
保存文件,退出,輸入source /etc/profile,讓環境生效,或者退出終端,重新登錄也可以。
查看命令,在終端輸入history即可看到歷史命令的
但這裏有個問題,因爲只是記錄了時間與命令,沒有記錄登錄的IP地址,後期的審計也不方便,爲防止以上情況,可以在/etc/profile文件中,進行完善,把以下兩條命令去掉,用新的內容進行填充。
HISTFILESIZE=2000
HISTTIMEFORMAT="%Y%m%d-%H%M `whoami` "
新內容爲:
### add by lgh2 at 2016-01-06
#history
export HISTTIMEFORMAT="[%Y%m%d-%H%M-:%S]"
USER_IP=`who -u am i 2>/dev/null| awk '{print$NF}'|sed -e 's/[()]//g'`
HISTDIR=/var/log/.hist
if [ -z $USER_IP ]
then
USER_IP=`hostname`
fi
if [ ! -d $HISTDIR ]
then
mkdir -p$HISTDIR
chmod 777$HISTDIR
fi
if [ ! -d $HISTDIR/${LOGNAME} ]
then
mkdir -p $HISTDIR/${LOGNAME}
chmod 300$HISTDIR/${LOGNAME}
fi
export HISTSIZE=4096
DT=`date +%Y%m%d_%H%M%S`
exportHISTFILE="$HISTDIR/${LOGNAME}/${USER_IP}.hist.$DT"
chmod 600 $HISTDIR/${LOGNAME}/*.hist* 2>/dev/null
###end by lgh2
解說:所有操作命令記錄存放在/var/log/.hist/{用戶}/目錄下,即使是同一個終端幾個不同的窗口,在該窗口退出或關閉時,該用戶目錄下會生產一個文件,多個窗口會生產多個文件,最後只要查看這些文件內容,就可以看出歷史操作了。