Linux下記錄所有用戶的登錄和操作日志


 

一般我們可以用history命令來查看用戶的操作記錄,但是這個命令不能記錄是哪個用戶登錄操作的,也不能記錄詳細的操作時間,且不完整;所以誤操作而造成重要的數據丟失,就很難查到是誰操作的。
 
在這里我們通過腳本代碼來實現記錄所以用戶的登錄操作日志:
 
編輯/etc/profile文件,在文件末尾加入下面代碼:
[root@telecom225 /]# vi /etc/profile

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/

[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
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM