linux記錄每個用戶執行的命令


1.在/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"  
export HISTTIMEFORMAT="[%Y.%m.%d %H:%M:%S]"  
chmod 600 $HISTDIR/${LOGNAME}/*.history* 2>/dev/null 

2.在/etc/bashrc中添加如下代碼:

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

最終效果:

 

  這段腳本的作用是把每個用戶執行的命令記錄在/usr/share/.history下以用戶名命名的目錄下,歷史記錄文件名根據用戶ip和時間命名。打開/usr/share/.history目錄會發現里邊保存了之前記錄的歷史命令文件。

  命令是記錄了,但從安全角度講,如果他清楚,所有操作均記錄了的話,是可以進入日志記錄目錄,進行文件刪除或文件修改的,於是需要將這些文件及時傳到日志收集服務器中,最好是作一個后台實時監控進程,該目錄下有文件變化的話,直接觸發同步操作,把文件及時同步到日志收集服務器,網上也有人把所有記錄實時通過日志進程syslog,把日志實時發至日志服務器中。


免責聲明!

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



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