history
命令產生星號 * 條目
我修改後的搜尋歷史行旁邊有一個星號。
我搜尋了 unix.stackexchange.com 和 stackoverflow.com,但我渴望對我的歷史中的星號進行完整的解釋(除了手冊頁上的內容)。
標有 * 的行已被修改。
例子:
$ history | tail 11850* 11851 ./block_ip.sh '23.228.114.203' 'evil probe' 11852 ./block_ip.sh DROP '23.228.114.203' 'evil probe $
在這個例子中,一個 shell 腳本有第三個參數,但沒有錯誤,我在沒有指定 (DROP/ACCEPT) 的情況下執行了它兩次。
修改是為了清除這段歷史,以便歷史擴展不會導致我(再次)輸入錯誤的命令。
我想知道更多關於這個(但我不知道我不知道什麼)。
請考慮這兩個角度:
- 我該如何使用它(例如,如果我需要它,我可以得到那個原始命令)?
- 一個壞人怎麼能使用它(有人可以這樣隱藏他們的命令歷史)?
如果通用答案過於冗長,請注意我的一些設置:
EDITOR=/usr/bin/vim HISTFILE=/home/jim/.bash_history SHELLOPTS=braceexpand:hashall:histexpand:history:interactive-comments:monitor:vi
而這個作業系統資訊(它是 RedHat ……但 Debian/Fedora/Ubuntu 不應該有太大差異……他們應該嗎?):
Linux qwerutyhgfjkd 3.10.0-693.11.1.el7.x86_64 #1 SMP Mon Dec 4 23:52:40 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
我使用 bash 作為我的外殼。
這個類似的問題有兩個相關的答案。
具體來說:
如 Bash 手冊中所述,以 a 為前綴的歷史記錄行
*
已被修改。當您導航到一個命令(例如,使用Up
鍵)、編輯它然後離開它而不點擊 時,就會發生這種情況Enter
。…順便說一句,您可以通過導航到它們並反复按 Ctrl + _ 將修改後的命令恢復為未編輯狀態。這個答案顯示瞭如何通過禁用它來禁用它
mark-modified-lines
:set mark-modified-lines Off
至於您關於是否有人可以以這種方式隱藏其命令歷史記錄的問題,您可以看到可以設置
mark-modified-lines
以及恢復到原始命令行。因此既可以隱藏或更改歷史記錄,也可以恢復它。話雖如此,使用者隱藏其歷史記錄的威脅模型是什麼?使用者是誰?在受管理的環境中,使用者應該只對與其角色相關的功能和文件具有訪問權和權限。否則,如果未經授權的使用者獲得了訪問權限,那麼查找修改過的命令行可能是管理員最不擔心的事情。