通常咱們能夠用history命令來查看用戶的操做記錄,可是這個命令不能記錄是哪一個用戶登陸操做的,也不能記錄詳細的操做時間,且不完整;因此誤操做而形成重要的數據丟失,就很難查到是誰操做的。
在這裏咱們經過腳本代碼來實現記錄因此用戶的登陸操做日誌:
編輯/etc/profile文件,在文件末尾加入下面代碼:
[root@telecom225 /]# vi /etc/profileide
history USER=`whoami` 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 /var/log/history ]; then mkdir /var/log/history chmod 777 /var/log/history fi if [ ! -d /var/log/history/${LOGNAME} ]; then mkdir /var/log/history/${LOGNAME} chmod 300 /var/log/history/${LOGNAME} fi export HISTSIZE=4096 DT=`date +"%Y%m%d_%H:%M:%S"` export HISTFILE="/var/log/history/${LOGNAME}/${USER}@${USER_IP}_$DT" chmod 600 /var/log/history/${LOGNAME}/*history* 2>/dev/null
註釋: /var/log/history這是記錄日誌的存放位置,能夠自定義。
在/var/log/history下會以每一個用戶爲名新建一個文件夾,
[root@telecom225 /]# cd /var/log/history/post
[root@telecom225 history]# ll total 20 d-wx------ 2 test dennishan 4096 Jul 4 12:06 test d-wx------ 2 jerryhe jerryhe 4096 Jul 4 14:12 jerryhe
每次用戶退出後都會產生以用戶名、登陸IP、時間的文件,裏面包含此用戶本次的因此操做日誌
[root@telecom225 history]# cd jerryhe/ [root@telecom225 jerryhe]# ls jerryhe@180.173.188.252_20130626_14:59:51 jerryhe@180.173.188.252_20130628_14:40:26 jerryhe@180.173.188.252_20130703_09:44:21 jerryhe@180.173.188.252_20130703_11:18:40 jerryhe@180.173.188.252_20130703_11:21:11 jerryhe@180.173.188.252_20130703_14:21:49 jerryhe@180.173.188.252_20130703_14:30:48 jerryhe@180.173.188.252_20130704_13:37:19