centos 7 檢視所有登入使用者的操作歷史
阿新 • • 發佈:2019-01-07
2019-01-07
轉自 https://www.cnblogs.com/kevingrace/p/7373146.html
centos 7 檢視所有登入使用者的操作歷史
在Linux系統的環境下,不管是root使用者還是其它的使用者只有登陸系統後用進入操作我們都可以通過命令
history
來檢視歷史記錄。可是假如一臺伺服器多人登陸,一天因為某人誤操作了刪除
了重要的資料。這時候通過檢視歷史記錄(命令:
history
)是沒有什麼意義了(因為
history
只針對登入使用者下執行有效,即使root使用者也無法得到其它使用者histotry歷史)。那有沒有什麼
辦法實現通過記錄登陸後的IP地址和某使用者名稱所操作的歷史記錄呢?答案肯定是有的!
通過在
/etc/profile
檔案底部新增以下程式碼就可以實現:
[[email protected]
test
~]
# cat /etc/profile
......
#記錄每個使用者的操作資訊
export
PS1=
'[\[email protected]\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
/opt/history
]
then
mkdir
/opt/history
chmod
777
/opt/history
fi
if
[ ! -d
/opt/history/
${LOGNAME} ]
then
mkdir
/opt/history/
${LOGNAME}
chmod
300
/opt/history/
${LOGNAME}
fi
export
HISTSIZE=4096
DT=`
date
+
"%Y%m%d_%H%M%S"
`
export
HISTFILE=
"/opt/history/${LOGNAME}/${USER_IP} history.$DT"
chmod
600
/opt/history/
${LOGNAME}/*
history
* 2>
/dev/null
[[email protected]
test
~]
# source /etc/profile #使得上面配置生效
上面指令碼在系統的
/opt
下新建個
history
目錄,記錄所有登陸過系統的使用者和IP地址(檔名),每當使用者登入/退出會建立相應的檔案,該檔案儲存這段使用者登入時期內操作歷史,可以用這個
方法來監測系統的安全性。
------------------------------------------------------------------------------------------------------------------------------------------
上面的顯示跟預設的linux終端顯示不太習慣。現在要求終端裡切換路徑後,只顯示當前的簡介路徑,不顯示全部路徑,並且後面帶上
#或$符號,那麼只需要將上面的第一行
PS1引數後面的設定如下:
1)只顯示當前簡介路徑,不顯示全路徑,顯示
#號。注意下面在"#"符號後面空出一格,這樣終端的"#"符號跟命令之間就有了一格的距離,習慣而已!
PS1=
"[\[email protected]\h \W]# "
2)只顯示當前簡介路徑,不顯示全路徑,顯示$號。注意下面的
"$"
符號後面空出一格。
PS1=
"[\[email protected]\h \W]\$ "
這裡我在指令碼選擇第(1)種帶
"#"
號顯示(也可以兩種都不選,直接將第一行PS1的設定給去掉,這樣就是預設的了終端顯示.線上使用的話,推薦使用這種預設的),生效後的終
端顯示內容和linux預設顯示的一樣。即
export
PS1=
"[\[email protected]\h \W]# "