安全日誌配置(保留history日誌)-linux服務器

linux下可通過history命令查看用戶所有的歷史操作記錄。
在未進行附加配置情況下,history命令只能查看用戶歷史操作記錄,而並不能區分用戶以及操作時間。
 
下面是如何滿足這2個功能的配置情況:
 
方案一:臨時查看操作命令及對應操作時間
每次登錄系統後,在系統下輸入export HISTTIMEFORMAT='%F %T '命令,可查詢時間
 
配置後效果顯示:
       [nxuser@XXXXXX ~]$export HISTTIMEFORMAT='%F %T '
       [nxuser@XXXXXX ~]$history
       1  2011-09-06 11:42:38 history
       2  2011-09-06 11:42:43 history |more
       3  2011-09-06 11:43:24 more ~/.bash_history
       4  2011-09-06 11:43:41 ll
       但是這隻針對當前用戶,用戶重新登錄該配置失效。
 
方案二:永久保存配置,需要能通過history命令查看到相應操作記錄的操作時間
 
編輯/etc/bashrc文件,加入如下四行:  
       HISTFILESIZE=2000
       HISTSIZE=2000
HISTTIMEFORMAT='%F %T '
       export HISTTIMEFORMAT

 

配置後效果顯示:

[root@XXXXXXXX ~]$history
    1  2011-09-06 14:49:14 history
[root@XXXXXXXX ~]$


 

方案三:實現登陸過系統的用戶、IP地址、操作命令以及操作時間一一對應

通過在/etc/profile裏面加入以下代碼就可以實現:

#history
PS1="[\u@\h \W]\$"
history
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/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 -d '0 day' +\%Y\%m\%d_\%H\%M\%S`
export HISTFILE="/tmp/dbasky/${LOGNAME}/dbasky@${USER_IP}_$DT"
chmod 600 /tmp/dbasky/${LOGNAME}/*dbasky* 2>/dev/null
 
其實通過上面的代碼不難看出,在系統的/tmp新建個dbasky目錄,在目錄中記錄了所有的登陸過系統的用戶和IP地址。
 
實現後效果如下:
[root@XXXXXX nxuser]$ll
total 8
-rw-------  1 nxuser nxgroup 15 Sep  6 23:04 [email protected]_20110907_230314
-rw-------  1 nxuser nxgroup 19 Sep  6 23:05 [email protected]_20110907_230439
[root@ZJ-WAP-SNMP nxuser]$more [email protected]_20110907_230439
ls
ll
free -m
exit
[root@XXXXXXX nxuser]$pwd
/tmp/dbasky/nxuser
[root@XXXXXXX nxuser]$
 
但是方案三配置後,使用history命令只能查看到本次登錄所操作的命令;如需查看之前登錄的歷史命令,可通過查看~/.bash_History文件。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章