Sudo
sudo less ...
是否應該更改~/.lesshst
的所有權?
進行了一次
sudo less ...
…為了查看受限日誌文件並使用它進行一些搜尋,我發現我的
~/.lesshst
文件的所有權和組已更改為root:root
(其中~
指的是呼叫sudo
命令的使用者的主目錄,而不是root
,明顯地)。這發生在全新的 Ubuntu 18.04 安裝上
less --version
:less 487 (GNU regular expressions) Copyright (C) 1984-2016 Mark Nudelman
我找不到(Google)任何人觀察的參考資料,更不用說在任何地方解釋這種行為了;所以我在這裡尋找它的理由或確認它只是一個錯誤的跡象。
這很正常。
sudo less ...
以 root 身份執行
less
,但不更改主目錄。執行搜尋會更新搜尋歷史記錄~/.lesshst
,這會將文件的所有權更改為目前使用者 root(為了確保可以安全地完成更新,less
將歷史記錄寫入新的臨時文件,然後重命名它;這會導致原始文件的所有權失去)。如果你想避免這種情況,你可以告訴
less
使用 root 的歷史,通過sudo
設置HOME
變數指向 root 的主目錄:sudo -H less ...
另一種選擇是暫時禁用搜尋歷史記錄:
sudo LESSHISTFILE=- less ...
但是,這確實意味著您將無法使用儲存的搜尋歷史記錄(
/
後跟↑
,甚至n
不指定搜尋字元串)。