記錄用戶操作歷史命令history


我們知道可以使用history命令,查看自己的操作記錄,但如果你是root用戶,如何查看其它用戶的操作記錄呢?
 
其實history命令只是把當前用戶目錄下的~/.bash_History文件內容列出來而已。

 1.第一種:配置/etc/bashrc

一般而言,history展示的操作記錄是沒有時間的,可以在/etc/bashrc文件中加入下列代碼:
HISTFILESIZE=2000  # #設置保存歷史命令的文件大小
HISTSIZE=2000      ##保存歷史命令條數
HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S:"   ###記錄每條歷史命令的執行時間
export HISTTIMEFORMAT
注意:
其中:
        %Y:4位數的年份;
        %m:2位數的月份數;
        %d:2位數的一個月中的日期數;
        %H:2位數的小時數(24小時制);
        %M:2位數的分鍾數;
        %S:2位數的秒數

 2.第二種:配置腳本,放入/etc/profile

#history
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
HISTDIR=/usr/share/.history
if [ -z $USER_IP ]
then
USER_IP=`hostname`
fi
if [ ! -d $HISTDIR ]
then
mkdir -p $HISTDIR
chmod 777 $HISTDIR
fi
if [ ! -d $HISTDIR/${LOGNAME} ]
then
mkdir -p $HISTDIR/${LOGNAME}
chmod 300 $HISTDIR/${LOGNAME}
fi
export HISTSIZE=4000
DT=`date +%Y-%m-%d_%H:%M:%S`
export HISTFILE="$HISTDIR/${LOGNAME}/${USER_IP}.history.$DT"
HISTTIMEFORMAT="`whoami`: | %F | %T: |${USER_IP}:" 
chmod 600 $HISTDIR/${LOGNAME}/*.history* 2>/dev/nul

腳本的作用是記錄用戶登陸后的操作,如果這個用戶是root用戶,會在/usr/share/.history/下創建用戶名的文件夾,里面存放用戶相關的歷史命令記錄。

 

下面看下一個文件中的內容

[root@iZ2ze2db4rp7b7weknjhneZ root]# cat 49.4.151.23.history.2018-03-08_12:25:10
#1520483137
cd /usr/share/.history/
#1520483138      ###記錄命令執行的時間戳,可通過相關軟件轉換
ls
#1520483139
cd xin/
#1520483140
ls
#1520483150
cd ..
#1520483151
ls

 

3.第三種:配置/etc/profile

這種方法最簡單,只需要在/etc/profile中加入下面一句話即可。

#history
USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[()]//g'`
HISTTIMEFORMAT="`whoami`: | %F | %T: |${USER_IP}:" 

配置完,需要使用source /etc/profile使其生效。

效果圖如下:

 


免責聲明!

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



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