linux的history命令設定

2021-09-08 22:56:15 字數 1667 閱讀 2785

利用history命令,可以使每個登入會話只看到自己的命令歷史記錄,這樣即保證安全,又方便使用。即使是同乙個使用者的不同會話,也要保證同乙個使用者的各個會話只能看到自己的歷史記錄。不方便的是,你每次登入進去,都是乙個新的會話,就看不到任何的history記錄。

例項來自

設定uid大於等於500的使用者的history安全性

需求:記錄統一轉移到/var/history目錄下;

使用者無法刪除自己的history檔案,無法清空history;

多個終端共享history,實時追加;

限制history檔案大小和儲存的條數;

舉例使用者,lionel;uid=523

1)配置全域性環境變數檔案/etc/profile

#vi /etc/profile //新增以下內容

#add by coolnull

if [ $uid -ge 500];then

readonly histfile=/var/history/$user-$uid.log

readonly histfilesize=50000readonly histsize=10000readonly histtimeformat='

%f %t

'readonly histcontrol=ignoredups

readonly prompt_command="

history -a"fi

建立目錄結構

#mkdir /var/history

配置目錄許可權,使得使用者有許可權建立自己的history檔案

#chmod 777 /var/history

#chmod a+t /var/history

2)限制使用者刪除自己的history檔案

#chattr +a /var/history/lionel-522.log

3)限制使用者修改自己主目錄的環境變數配置檔案

#chattr +a /home/lionel/.bash*

#lsattr /home/lionel/.bash*

-----a------- /home/lionel/.bash_logout

-----a------- /home/lionel/.bash_profile

-----a------- /home/lionel/.bashrc

4)禁止普通使用者切換到系統中其他shell環境(一般包括csh,tcsh,ksh)

#chmod 750 tcsh(csh是tcsh的軟連線,設定tcsh就可以了)

#chmod 750 /bin/ksh

普通帳號測試

[zhangfei@node1 ~]$ tcsh

-bash: /bin/tcsh: permission denied

[zhangfei@node1 ~]$ ksh

-bash: /bin/ksh: permission denied

參考:1、

2、3、  如何儲存多個終端會話的歷史命令

Linux基礎命令 history

shell內建命令 history命令用於顯示指定數目的指令命令,讀取歷史命令檔案中的目錄到歷史命令緩衝區和將歷史命令緩衝區中的目錄寫入命令檔案。該命令單獨使用時,僅顯示歷史命令,在命令列中,可以使用符號 執行指定序號的歷史命令。例如,要執行第2個歷史命令,則輸入 2。歷史命令是被儲存在記憶體中的,...

Linux檢視歷史命令 history

root linux history n root linux history c root linux history raw histfiles 引數 n 數字,意思是 要列出最近的 n 筆命令列表 的意思!c 將目前的 shell 中的所有 history 內容全部消除 a 將目前新增的 hi...

Linux下History命令說明

一.命令說明 history命令為bash自帶的命令,使用者可以通過此命令來檢視和管理此使用者執行過的命令。每個會話登陸的時候會將histfile中的命令歷史記錄載入到記憶體中,每個會話退出時會將記憶體中的歷史記錄刷入histfile使用方式後續依次進行說明 二.使用說明 history n 數字n...