我們知道可以使用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使其生效。
效果圖如下: