Linux

在 Linux 伺服器上對其他使用者隱藏命令歷史記錄

  • June 27, 2016

當我在 Linux(Ubuntu)伺服器上通過 ssh 登錄時,我注意到伺服器上其他使用者執行的所有 bash 命令都保存在命令歷史記錄中。有沒有一種方法可以讓我對伺服器上的其他使用者隱藏我在命令行中鍵入的命令?

有很多方法可以隱藏命令歷史記錄,但完全關閉歷史記錄是個壞主意,因為它非常有用。這是暫時關閉它的三種好方法。

  1. 最快的解決方案:類型unset HISTFILE

這將防止在目前登錄會話中執行的所有命令在您註銷時保存到 .bash_history 文件中。請注意,HISTFILE 將在您下次登錄時重置,因此歷史記錄將照常保存。另外,請注意,這會從會話中刪除所有命令,包括在您鍵入 unset HISTFILE 之前執行的命令,這可能不是您想要的。另一個缺點是,在註銷之前,您無法確定自己是否正確,因為 bash 仍然允許您使用向上箭頭查看以前的命令。 2. 最佳解決方案:在命令前輸入一個空格

試試看,然後點擊向上箭頭,看看它是否已添加到您的歷史記錄中。有些站點已經設置了它,因此不會保存此類命令。如果它不起作用,請將該行添加export HISTCONTROL=ignoreboth到您的 .bashrc 文件中。當您將來登錄時,以空格開頭的命令將立即被遺忘。 3. 最容易記住:輸入sh

這將使用原始 Bourne shell 啟動一個子 shell。寫入其中的任何命令(直到您exit)都不會保存在您的歷史記錄中。任何查看您的歷史文件的人都可以看到您執行了 sh (這是可疑的),但看不到您之後執行的內容。

還有很多其他方法可以做到這一點。您甚至可以告訴 bash 哪些命令永遠不會記住 (HISTIGNORE)。請參閱 bash(1) 的手冊頁並蒐索 HIST 以查看許多可能性。

引用自:https://unix.stackexchange.com/questions/292318