Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

Linux history 指令加入時間、用戶與 IP 記錄完整設定教學

編輯:關於 Linux

預設 history 僅顯示指令序號與內容,若需審計或追蹤操作,可透過環境變數 HISTTIMEFORMAT 加入時間戳、用戶名稱甚至來源 IP,並可將記錄自動寫入日誌檔。

1. 基礎設定:顯示時間與用戶

echo 'export HISTTIMEFORMAT="%F %T `whoami` "' >> /etc/profile
source /etc/profile

執行 history 即可看到類似 1852 2016-01-11 16:24:52 user ls 的輸出。

2. 進階設定:加入來源 IP/主機名

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

輸出範例:[2016-01-11 16:47:37][hadoop][host-e-150.ustcsz.edu.cn] cd ..

3. 自動記錄至獨立日誌檔(按用戶、IP、時間分檔)

LOGIP=`who -u am i 2>/dev/null | awk '{print $NF}' | sed -e 's/[()]//g'`
LOG_DIR=/var/log/history
[ -z "$LOGIP" ] && LOGIP=`hostname`
[ ! -d "$LOG_DIR" ] && mkdir -p "$LOG_DIR" && chmod 777 "$LOG_DIR"
[ ! -d "$LOG_DIR/${LOGNAME}" ] && mkdir -p "$LOG_DIR/${LOGNAME}" && chmod 777 "$LOG_DIR/${LOGNAME}"
export HISTSIZE=4096
LOGTM=`date +"%Y%m%d_%H%M%S"`
export HISTFILE="$LOG_DIR/${LOGNAME}/${LOGIP}-$LOGTM"
chmod 777 "$LOG_DIR/${LOGNAME}"/*-* 2>/dev/null

將上述內容加入 /etc/profile 或用戶 ~/.bashrc 並 source 生效,即可建立完整的操作審計軌跡。

Copyright © Windows教程網 All Rights Reserved