我正在尝试正确设置 sudoers,以便我的用户可以关闭或重新启动系统而无需提示输入密码。我在多个系统中执行了此操作,但由于某种原因,它对我的 Debian 10 Buster 不起作用。
我尝试了所有我能想到的方法:将 NOPASSWD 放入默认的 %sudo 组中,将其直接放入我的用户中,将其作为别名,甚至将命令重新启动、断电和关机的多个路径放入,但没有任何效果。
言归正传,我将展示我的 sudoers 文件以阐明这一点:
#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# 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"
# Host alias specification
# User alias specification
# Cmnd alias specification
Cmnd_Alias SHUTDOWN=/sbin/poweroff, /sbin/reboot, /sbin/shutdown, /usr/sbin/reboot, /usr/sbin/poweroff, /usr/sbin/shutdown
# User privilege specification
root ALL=(ALL:ALL) ALL
aren ALL=NOPASSWD: SHUTDOWN
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
# See sudoers(5) for more information on "#include" directives:
#includedir /etc/sudoers.d
注意:我使用 visudo 编辑此文件,从不直接使用编辑器,并且 visudo 不会抱怨任何配置错误或语法错误或 visudo 经常说的任何错误。
有什么想法吗?你觉得有什么不对吗?非常感谢。
答案1
更新:感谢@KamilMaciorowski,我修复了它,并且我找到了一行解决方案,所以对于那些想要在一行中完成它的人来说,它会是这样的:
%sudo ALL=(ALL) PASSWD: ALL, NOPASSWD: </path/to/commands here>
代替: %sudo ALL=(ALL) NOPASSWD: </path/to/commands here>, PASSWD: ALL
因为它“优先”你最后放的东西。