Linux 記錄所有用戶(hù)登錄和操作的詳細(xì)日志

1、起因

最近Linux服務(wù)器上一些文件唄篡改,想追查已經(jīng)查不到記錄了,所以得想個(gè)辦法記錄下所有用戶(hù)的操作記錄。

一般大家通常會(huì)采用history來(lái)記錄,但是history有個(gè)缺陷就是默認(rèn)是1000行,當(dāng)然你也可以vim /etc/profile將1000修改成1000000行,但是這只是比較籠統(tǒng)的做法,看不到詳細(xì)的用戶(hù)來(lái)源已經(jīng)操作記錄,比如來(lái)源ip地址、操作時(shí)間、操作用戶(hù)等

所以我們不得不自己寫(xiě)代碼來(lái)實(shí)現(xiàn)這樣的功能。

2、自動(dòng)記錄腳本

編寫(xiě)腳本如下

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


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

”可以看到記錄日志的路徑是/var/log/history/${LOGNAME},所以這個(gè)目錄也需要事先建立,有多少個(gè)用戶(hù),就要建立多少個(gè)目錄,而且要把目錄的使用權(quán)限賦予相對(duì)應(yīng)的用戶(hù)。


而每次用戶(hù)登錄到退出都會(huì)產(chǎn)生以用戶(hù)名、登錄ip地址、操作時(shí)間為文件名的文件,文件里面包含本次用戶(hù)的所有操作記錄。

3、建立初始化目錄

先去/home查看有多少個(gè)用戶(hù)

[root@azure_test_static1_11_35 history]# ll

total 28

drwxr-xr-x 2 adminuser adminuser 4096 Nov 17 21:53 adminuser

drwxr-xr-x 2 fastdfs?? fastdfs?? 4096 Nov 17 21:53 fastdfs

drwxr-xr-x 2 loguser ??loguser?? 4096 Nov 17 19:43 loguser

drwxr-xr-x 2 nginx???? nginx???? 4096 Nov 17 20:54 nginx

d-wx------ 2 root????? root????? 4096 Nov 17 21:53 root

drwxr-xr-x 2 tomcat??? tomcat??? 4096 Nov 17 19:42 tomcat

drwxr-xr-x 2 zabbix??? zabbix??? 4096 Nov 17 19:42 zabbix

[root@azure_test_static1_11_35 history]#

然后開(kāi)始建立初始化目錄

[root@azure_test_static1_11_35 log]# mkdir /var/log/history/fastdfs

[root@azure_test_static1_11_35 history]# chown fastdfs:fastdfs fastdfs -R

[root@azure_test_static1_11_35 log]# mkdir /var/log/history/tomcat

[root@azure_test_static1_11_35 log]# chown -R tomcat:tomcat /var/log/history/tomcat

[root@azure_test_static1_11_35 log]# mkdir /var/log/history/zabbix

[root@azure_test_static1_11_35 log]# chown -R zabbix:zabbix /var/log/history/zabbix

[root@azure_test_static1_11_35 log]# mkdir /var/log/history/loguser

[root@azure_test_static1_11_35 log]# chown -R loguser:loguser /var/log/history/loguser

[root@azure_test_static1_11_35 log]# mkdir /var/log/history/adminuser

[root@azure_test_static1_11_35 log]# chown -R adminuser:adminuser /var/log/history/adminuser

4、用戶(hù)登錄驗(yàn)證

用其中一個(gè)用戶(hù)fastdfs登錄進(jìn)程操作

[adminuser@azure_test_static1_11_35 ~]$ sudo -i

[sudo] password for adminuser:

[root@azure_test_static1_11_35 ~]# su - fastdfs

[fastdfs@azure_test_static1_11_35 ~]$ cp test1.log test3.log

[fastdfs@azure_test_static1_11_35 ~]$ echo "test 1"> test3.log

[fastdfs@azure_test_static1_11_35 ~]$ echo "1" >> test3.log

[fastdfs@azure_test_static1_11_35 ~]$ echo "2" >> test3.log

[fastdfs@azure_test_static1_11_35 ~]$ echo "3" >> test3.log

[fastdfs@azure_test_static1_11_35 ~]$ more test3.log

test 1

1

2

3

[fastdfs@azure_test_static1_11_35 ~]$


然后退出用戶(hù),重新登錄進(jìn)去日志目錄/var/log/history/fastdfs/查看有最新的記錄,一次用戶(hù)登錄到退出就會(huì)保存成一個(gè)日志文件記錄:

# 進(jìn)入日志目錄

[root@azure_test_static1_11_35 fastdfs]# cd /var/log/history/fastdfs/

# 查看有2個(gè)操作日志記錄

[root@azure_test_static1_11_35 fastdfs]# ll

total 8

-rw------- 1 fastdfs fastdfs? 83 Nov 17 21:53 fastdfs@192.168.120.103_20161117_21:53:16

-rw------- 1 fastdfs fastdfs 139 Nov 17 21:59fastdfs@192.168.120.103_20161117_21:56:47

# 打開(kāi)當(dāng)前的操作記錄日志

[root@azure_test_static1_11_35 fastdfs]# more fastdfs@192.168.120.103_20161117_21:56:47

cp test1.log test3.log

echo "test 1"> test3.log

echo "1" >> test3.log

echo "2" >> test3.log

echo "3" >> test3.log

more test3.log

exit

[root@azure_test_static1_11_35 fastdfs]#


參考:https://blog.csdn.net/tao19910610/article/details/53285010

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容