2021-08-24
1. 需求產生原因
linux 系統中的日志存放在目錄 /var/log/ 下,今天想看看我之前的操作記錄,發現系統中的日志並不包括各個用戶操作文件的記錄,所以打算自己建一個。
2. 創建日志存放目錄
# 創建日志存放目錄 mkdir -p userlogin/records # 給目錄添加最高權限 777 # 表示 records 在該用戶,該用戶同組用戶以及其他用戶都有讀寫執行的權限 chmod 777 userlogin/records/ # 使用戶對 records 具有寫權限但是不能刪除該文件 chmod +t userlogin/records/
3. 配置環境變量
vi /etc/profile
# 用戶操作日志
# [ -d FILE ] 如果 FILE 存在且是一個目錄則為真 if [ ! -d /var/log/userlogin/records/${LOGNAME} ] then mkdir -p /var/log/userlogin/records/${LOGNAME} chmod 777 /var/log/userlogin/records/${LOGNAME} fi export HISTORY_FILE="/var/log/userlogin/records/${LOGNAME}/bash_history"
# 將時間、用戶、終端、ip以及執行的命令記錄下來 export PROMPT_COMMAND='{ date "+%Y-%m-%d %T *** $(who am i |awk "{print \$1\" \"\$2\" \"\$5}") *** $(history 1 | { read x cmd; echo "$cmd"; })"; } >> $HISTORY_FILE'
生效配置文件
source /etc/profile
4. 測試
# 查看 root 操作日志 cd /var/log/userlogin/records/root # 進行一些簡單的操作后查看 bash_history 中是否生成記錄 cat bash_history