Linux

特定命令需要 sudo 密碼

  • May 28, 2017

我試圖在每次執行時使用 sudo 對特定命令強制輸入密碼,無論密碼是否在一秒鐘前輸入。有沒有辦法做到這一點?

Google上的每個搜尋結果都只是解釋瞭如何使用 NOPASSWD 刪除密碼提示,這沒問題,但我仍然希望 SPECIFIC 命令在每次執行時都能獲得密碼提示,即使密碼是在一秒鐘前輸入的。

我的方法是這樣的:

Defaults               !authenticate
Cmnd_Alias             WITHPW = rm -R, shutdown,
Defaults:WITHPW        authenticate

有人可以解釋那是正確的方法還是我能做什麼?

謝謝,

一種/

兩個選項之間有區別:

authenticate

如果設置,使用者必須先通過密碼(或其他身份驗證方式)進行身份驗證,然後才能執行命令。這個預設值可以通過PASSWDandNOPASSWD標籤覆蓋。該標誌預設開啟

passwd_timeout

sudo 密碼提示超時之前的分鐘數,或者0沒有超時。例如,如果分鐘粒度不夠,超時可能包括小數部分2.5。預設值為5.

雖然您可以同時設置 per Cmnd_Alias,但passwd_timeout對於您要實現的目標,這是正確的選項。

然後,讓我們看一下 的語法Defaults

Default_Type ::= 'Defaults' |
                'Defaults' '@' Host_List |
                'Defaults' ':' User_List |
                'Defaults' '!' Cmnd_List |
                'Defaults' '>' Runas_List

Default_Entry ::= Default_Type Parameter_List

Parameter_List ::= Parameter |
                  Parameter ',' Parameter_List

Parameter ::= Parameter '=' Value |
             Parameter '+=' Value |
             Parameter '-=' Value |
             '!'* Parameter

指定 a Cmnd_ListorCmnd_Alias您需要!前綴時,結果:

Cmnd_Alias          WITHPW = /usr/bin/rm -R, /usr/sbin/shutdown
Defaults:!WITHPW    passwd_timeout=0

引用自:https://serverfault.com/questions/852639