
我希望所有用戶都能夠sudo
在不輸入密碼的情況下查看他們的權限。
有什麼方法可以允許這樣做而不添加ALL ALL=(ALL) NOPASSWD: /usr/bin/sudo -l
to/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
。
和
listpw
sudo
此選項控制當使用者使用該選項執行時何時需要密碼-l
。它有以下可能的值:
all
sudoers
-目前主機的所有使用者項目都必須NOPASSWD
設定標誌以避免輸入密碼always
- 使用者必須始終輸入密碼才能使用該-l
選項。any
sudoers
-目前主機的使用者條目中至少一項必須NOPASSWD
設定標誌以避免輸入密碼。never
- 使用者無需輸入密碼即可使用該-l
選項。
假設您想避免NOPASSWD
,您可以設定listpw=never
:
Defaults listpw=never
用於visudo
編輯和檢查文件sudoers
(提示:EDITOR=nano visudo
如果您想用於nano
編輯sudoers file instead of
vi`,請使用)。更好的是,在測試時保持另一個 root shell 打開,這樣您就不會失去存取權限。
不幸的是,似乎中的一個錯誤sudo
,即已於 1.8.28 修復,可能會忽略該listpw=never
設定。在這種情況下你一定不使用listpw=never
,而是創建一個無意義的條目,例如這樣
ALL ALL=(ALL) NOPASSWD: /bin/false
最終結果應該是sudo -l
會觸發任何條目都有NOPASSWD
規則,你就會達到你的要求。