Sudo

sudo less ... 是否應該更改~/.lesshst 的所有權?

  • October 31, 2019

進行了一次

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不指定搜尋字元串)。

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