Centos記錄所有用戶登錄和操作的詳細日志


1、起因

最近Linux服務器上一些文件唄篡改,想追查已經查不到記錄了,所以得想個辦法記錄下所有用戶的操作記錄。

一般大家通常會采用history來記錄,但是history有個缺陷就是默認是1000行,當然你也可以vim /etc/profile將1000修改成1000000行,但是這只是比較籠統的做法,看不到詳細的用戶來源已經操作記錄,比如來源ip地址、操作時間、操作用戶等。

所以我們不得不自己寫代碼來實現這樣的功能。

 

2、自動記錄腳本

在/etc/profile文件的末尾追加編寫腳本如下:

#set user history
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}
    chown -R ${LOGNAME}:${LOGNAME} /var/log/history/${LOGNAME}
    chmod 770 /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 660 /var/log/history/${LOGNAME}/*history* 2>/dev/null

這個腳本需要放在/etc/profile文件的末尾。這里默認寫了記錄日志文件的根目錄是:/var/log/history,這個目錄需要初始化建立,然后通過“exportHISTFILE="/var/log/history/${LOGNAME}/${USER}@${USER_IP}_$DT"

”可以看到記錄日志的路徑是/var/log/history/${LOGNAME},所以這個目錄也需要事先建立,有多少個用戶,就要建立多少個目錄,而且要把目錄的使用權限賦予相對應的用戶。

而每次用戶登錄到退出都會產生以用戶名、登錄ip地址、操作時間為文件名的文件,文件里面包含本次用戶的所有操作記錄。

 

3、用戶登錄驗證

用其中一個用戶alad登錄進程操作

[alad@internal-nginx alad]$touch test_history
[alad@internal-nginx alad]$cat >> test_history << EOF
>123123
>1231435454
EOF
[alad@internal-nginx alad]$ls
test_history

然后退出用戶(需要退出當前用戶),重新登錄進去日志目錄/var/log/history/alad/查看有最新的記錄,一次用戶登錄到退出就會保存成一個日志文件記錄:

#進入日志目錄
[alad@internal-nginx alad]$ cd /var/log/history/alad
/var/log/history/alad
#查看日志記錄文件
[alad@internal-nginx alad]$ ls
alad@192.168.20.199_20190115_17:44:51  alad@192.168.20.199_20190115_17:48:40
#打開操作記錄日志
[alad@internal-nginx alad]$ cat alad\@192.168.20.199_20190115_17\:48\:40 
#1547545726
ls
#1547545788
touch 1
#1547545795
cat >> 1 << EOF
123123
1231435454
EOF

#1547545798
ls

可以清楚的看到cat后的內容為之前操作的命令記錄,並且帶上時間戳!

 


免責聲明!

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



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