centos 7 查看所有登錄用戶的操作歷史


2019-01-07


 

轉自  https://www.cnblogs.com/kevingrace/p/7373146.html

centos 7 查看所有登錄用戶的操作歷史

在Linux系統的環境下,不管是root用戶還是其它的用戶只有登陸系統后用進入操作我們都可以通過命令history來查看歷史記錄。可是假如一台服務器多人登陸,一天因為某人誤操作了刪除

了重要的數據。這時候通過查看歷史記錄(命令: history )是沒有什么意義了(因為 history 只針對登錄用戶下執行有效,即使root用戶也無法得到其它用戶histotry歷史)。那有沒有什么
辦法實現通過記錄登陸后的IP地址和某用戶名所操作的歷史記錄呢?答案肯定是有的!
  
通過在 /etc/profile 文件底部添加以下代碼就可以實現:
[root@ test  ~] # cat /etc/profile
......
#記錄每個用戶的操作信息
export  PS1= '[\u@\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
  
[root@ test  ~] # source /etc/profile     #使得上面配置生效
  
上面腳本在系統的 /opt 下新建個 history 目錄,記錄所有登陸過系統的用戶和IP地址(文件名),每當用戶登錄/退出會創建相應的文件,該文件保存這段用戶登錄時期內操作歷史,可以用這個
方法來監測系統的安全性。
------------------------------------------------------------------------------------------------------------------------------------------
上面的顯示跟默認的linux終端顯示不太習慣。現在要求終端里切換路徑后,只顯示當前的簡介路徑,不顯示全部路徑,並且后面帶上 #或$符號,那么只需要將上面的第一行
PS1參數后面的設置如下:
1)只顯示當前簡介路徑,不顯示全路徑,顯示 #號。注意下面在"#"符號后面空出一格,這樣終端的"#"符號跟命令之間就有了一格的距離,習慣而已!
PS1= "[\u@\h \W]# "
2)只顯示當前簡介路徑,不顯示全路徑,顯示$號。注意下面的 "$" 符號后面空出一格。
PS1= "[\u@\h \W]\$ "
 
這里我在腳本選擇第(1)種帶 "#" 號顯示(也可以兩種都不選,直接將第一行PS1的設置給去掉,這樣就是默認的了終端顯示.線上使用的話,推薦使用這種默認的),生效后的終
端顯示內容和linux默認顯示的一樣。即 export  PS1= "[\u@\h \W]# "


免責聲明!

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



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