linux系统 长久记录所有用户所有操作记录
生活随笔
收集整理的這篇文章主要介紹了
linux系统 长久记录所有用户所有操作记录
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在linux系統中想要記錄所有登錄過當前系統的用戶操作,排查有人對當前系統做的何種操作導致系統問題,可以按照如下方法進行。
前言
在描述操作步驟之前,先說一下系統環境變量的相關配置文件
~/.bashrc和~/.bash_file,這兩個文件是當前用戶shell下生效的環境變量配置文件。修改完成之后需要source一下對應的配置/etc/profile和/etc/bashsrc是全局變量。修改完成后所有的用戶shell都會生效,這里我們改動的主要是/etc/profile這個文件,它有一個文件夾/etc/profile.d目錄,其中也是對應的腳本,可以配置定制的環境變量腳本
查看/etc/profile其中一段代碼
關于交互腳本和非交互腳本的詳細描述可以參考博文 https://blog.csdn.net/gui951753/article/details/79154496for i in /etc/profile.d/*.sh /etc/profile.d/sh.local ; do #從/etc/profile.d目錄下取出文件 if [ -r "$i" ]; then # 判斷是否可執行if [ "${-#*i}" != "$-" ]; then #判斷是否為交互式腳本,${-#*i}用來輸出腳本類型,如果$-為交互式腳本類型(echo $-輸出包含字母i). "$i" #是非交互腳本,不需要查看或者輸入任何信息,即可直接執行else. "$i" >/dev/null #否則重定向到空,即不執行fi fi done
實現
針對/etc/profile.d中腳本的執行方式,可以自己編寫實現記錄所有用戶操作記錄的腳本get_all_user.sh ,將該腳本放入到/etc/profile.d文件夾下,并source /etc/profile即可生效
該腳本在用戶退出之后會在/tmp/baron目錄下生成用戶名的文件夾,并在該文件夾下生成對應的登錄ip以及時間為文件名的用戶操作記錄文件
#get the operation of users on the server#設置終端顯示符
#root@[/tmp/baron/]#
user=`whoami`
if [ "$user" == "root" ];thenPS1="`whoami`@"'[$PWD]#'
elsePS1="`whoami`@"'[$PWD]$'
fi#HISTFILE的記錄方式是在用戶退出后將history中的緩存寫入到HISTFILE中
history#獲取登錄用戶ip
USER_IP=`who -u am i 2>/dev/null|awk '{print $NF}'|sed -e 's/[()]//g'`
if [ "$USER_IP" == " " ];thenUSER_IP=`hostname`
fi#創建文件夾并設置權限
if [ ! -d /tmp/baron ];thenmkdir /tmp/baronchmod 777 /tmp/baron
fi
if [ ! -d /tmp/baron/${LOGNAME} ];thenmkdir /tmp/baron/${LOGNAME}chmod 300 /tmp/baron/${LOGNAME}
fi#設置history可以記錄命令的文件大小
export HISTSIZE=8192
DT=`date "+%Y-%m-%d_%H:%M:%S"`
export HISTFILE="/tmp/baron/${LOGNAME}/${USER_IP}.baron.$DT"
export HISTTIMEFORMAT="%F %T "#只有root對該目錄下所有文件有讀寫權限,防止其他用戶改動
chmod 600 /tmp/baron/${LOGNAME}/*baron* 2>/dev/null
生成如下記錄,可以看到有具體的登錄設備ip以及對應的用戶,文件中為用戶的具體操作記錄。非常直觀
參考博文:
深入淺出理解交互式shell和非交互式shell、登錄shell和非登錄shell的區別 https://blog.csdn.net/gui951753/article/details/79154496
linux命令h—history https://blog.csdn.net/qq_23929673/article/details/97308965
總結
以上是生活随笔為你收集整理的linux系统 长久记录所有用户所有操作记录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用blktrace分析磁盘I/O
- 下一篇: 花仙子是谁画的呢?