目錄shell
需求bash
相關參數app
實現步驟學習
>>>系統須要一個目錄用來記錄全部用戶的命令歷史記錄,來作安全保護。spa
>>>建立一個目錄/var/history,該目錄會建立文件記錄全部登陸用戶的歷史命令,ci
文件以 username-userid.log 格式命名;(默認用於記錄用戶歷史命令的文件是當前用戶家目錄下的.bash_history)table
>>>全部用戶執行過的命令都會被追加到對應的文件中 ,而且不能刪除和修改 ——>特殊屬性aawk
>>>用戶輸入的命令要實時刷入硬盤 ——> 特殊屬性s登錄
目錄格式以下:
[bei@localhost ~]$ ls -al /var/history/
dr-xr-xrwx. 2 root root 4096 Aug 7 22:43 .
drwxr-xr-x. 22 root root 4096 Jul 22 00:05 ..
-rw-------. 1 bei bei 76219 Sep 18 20:18 bei-507.log
-r--------. 1 root root 12815 Sep 18 20:17 root-0.log
文件格式以下:
[bei@localhost ~]$ cat -n /var/history/bei-507.log | tail -5
4363 ls -al
4364 #1537327334
4365 history
4366 #1537327341
4367 ifconfig
參數 |
描述 |
HISTFILE |
用於指定保存命令歷史記錄的路徑及文件名稱(默認~/.bash_history) |
HISTFILESIZE |
用於指定保存命令記錄文件中的最大行數(默認值500,建議設置爲null) |
HISTSIZE |
命令歷史記錄中的記錄的命令最大行數(默認值500,建議設置爲100000) |
HISTTIMEFORMAT |
在歷史記錄文件中,使用註釋符來區分時間戳和相關命令 可設置history命令顯示的歷史記錄條目關聯的時間戳輸出格式 history命令輸出爲: [bei@localhost ~]$ history | tail -5 2188 2018-09-18 20:22:14 (192.168.20.xxx) bei history 2189 2018-09-18 20:22:21 (192.168.20.xxx) bei ifconfig 2190 2018-09-18 20:22:49 (192.168.20.xxx) bei cat -n /var/history/bei-507.log | tail -5 2191 2018-09-18 20:27:45 (192.168.20.xxx) bei history | tail -10 2192 2018-09-18 20:27:51 (192.168.20.xxx) bei history | tail -5 |
HISTCONTROL |
控制命令在歷史列表中記錄方式 ignorespace:以空格開頭的行不會記錄在歷史中 ignoredups:忽略重複的命令 ignoreboth:參數ignorespace和ignoredups同時生效 |
關於readonly |
變量前寫上readonly,非root用戶變量不可更改 |
>>>建立目錄/var/history ——> mkdir /var/history
給目錄/var/history賦予全部人的寫權限 ——> chmod a+w /var/history
給目錄/var/history賦予特殊屬性a ——> chattr +a /var/history
>>>編輯/etc/profile修改shell命令記錄的參數
readonly HISTFILE=/var/history/$USER-$UID.log #設置保存命令歷史記錄的路徑及文件名稱
readonly HISTSIZE=null
readonly HISTFILESIZE=500000
readonly HISTTIMEFORMAT="%F %T `who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 's/[{}]//g' ` `whoami ` "
shopt -s histappend #一個用戶能夠同時打開多個終端
readonly PROMPT_COMMAND="history -a" #實時追加當前歷史命令到history文件
if [ "$HISTCONTROL" = "ignorespace" ] ; then
export HISTCONTROL=ignoreboth
else
export HISTCONTROL=ignoredups
fi
export HISTSIZE HISTCONTROL
說明:
>>>以上內容是本人學習的總結
>>>如還有錯誤,請留言,指正
>>>亦可分享本身的想法,互相學習