如何啟用 sudo 權限的無密碼清單(`sudo -l`)而不將 `sudo -l` 新增到 /etc/sudoers?

如何啟用 sudo 權限的無密碼清單(`sudo -l`)而不將 `sudo -l` 新增到 /etc/sudoers?

我希望所有用戶都能夠sudo在不輸入密碼的情況下查看他們的權限。

有什麼方法可以允許這樣做而不添加ALL ALL=(ALL) NOPASSWD: /usr/bin/sudo -lto/etc/sudoers嗎?

bob@cad50ee0931e:/$ sudo -l

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for bob:

答案1

sudoers文件 ( )的文檔man sudoers提供了這些建議

預設情況下,sudo要求使用者在運行命令之前對自己進行身份驗證。 [...]如果該NOPASSWD標籤應用於任何在目前主機上使用者的條目中,他或她將能夠在sudo -l沒有密碼的情況下運作。此行為可以透過 [...] 選項覆寫listpw

listpwsudo此選項控制當使用者使用該選項執行時何時需要密碼-l。它有以下可能的值:

  • allsudoers-目前主機的所有使用者項目都必須NOPASSWD設定標誌以避免輸入密碼
  • always- 使用者必須始終輸入密碼才能使用該-l選項。
  • anysudoers-目前主機的使用者條目中至少一項必須NOPASSWD設定標誌以避免輸入密碼。
  • never- 使用者無需輸入密碼即可使用該-l選項。

假設您想避免NOPASSWD,您可以設定listpw=never

Defaults listpw=never

用於visudo編輯和檢查文件sudoers(提示:EDITOR=nano visudo如果您想用於nano編輯sudoers file instead ofvi`,請使用)。更好的是,在測試時保持另一個 root shell 打開,這樣您就不會失去存取權限。


不幸的是,似乎中的一個錯誤sudo,即已於 1.8.28 修復,可能會忽略該listpw=never設定。在這種情況下你一定不使用listpw=never,而是創建一個無意義的條目,例如這樣

ALL ALL=(ALL) NOPASSWD: /bin/false

最終結果應該是sudo -l會觸發任何條目都有NOPASSWD規則,你就會達到你的要求。

相關內容