Shell
sudoers 文件更改不起作用?
我在 Ubuntu 18.04LTS 中,我想更改 sudoers 文件以
sudo shutdown -h now
在不需要密碼的情況下執行(formy_username
)。我採取的步驟是:使用我的使用者
my_username
打開終端:
sudo visudo
我添加的行:
my_username ALL=(ALL) NOPASSWD: /sbin/shutdown
在第一部分(使用者和 ALL 之間)只有一個選項卡,其餘的是空格。使用者是它
id
在終端中出現的那個。之後,以防萬一我重新啟動系統,然後輸入,sudo shutdown -h now
但它一直要求輸入密碼。我做錯了什麼?
- -編輯 - - -
好的,我不知道你添加行的順序很重要,所以我添加了我的完整文件(這是一個非常簡單的 sudoers 配置)。
# # See the man page for details on how to write a sudoers file. # Defaults env_reset Defaults mail_badpass Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin" # Host alias specification # User alias specification # Cmnd alias specification # User privilege specification root ALL=(ALL:ALL) ALL # Members of the admin group may gain root privileges %admin ALL=(ALL) ALL # Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL) ALL # See sudoers(5) for more information on "#include" directives: my_username ALL=(ALL) NOPASSWD: /sbin/shutdown #includedir /etc/sudoers.d
這種方式對我來說非常有效。問題是我在根行之後添加了行。
在 sudoers 手冊頁(man 5 sudoers)中已經提到
當一個使用者有多個條目匹配時,它們將按順序應用。如果有多個匹配項,則使用最後一個匹配項(不一定是最具體的匹配項)。
因此,無論您的配置是否特定。
還要考慮你是否有
sudoers
組(比如wheel
在基於 Red Hat 的發行版中)這條線
%wheel ALL=(ALL) ALL
應該是之前NOPASSWD
配置
my_username ALL=(ALL) NOPASSWD: /sbin/shutdown
允許使用者在不提供密碼的情況下使用或不使用參數
my_username
執行,但他們必須使用,而不僅僅是(因為拾取的執行檔取決於)。/sbin/shutdown``/sbin/shutdown``shutdown``$PATH