我想添加一个可以执行的用户“添加用户”和“更改密码”命令。我把在 Stack Exchange 答案中找到的配置添加到 visudo 中,但它不起作用。
这是我的/etc/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 USER_COMMANDS = /usr/sbin/adduser, /usr/sbin/chpasswd
# User privilege specification
root ALL=(ALL:ALL) ALL
sano ALL=(ALL) NOPASSWD: USER_COMMANDS
# 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
有人知道这是为什么吗?它无论如何都会要求我输入密码,否则我会得到:
adduser:只有 root 可以向系统添加用户或组。
答案1
当没有相关配置发生时/etc/sudoers.d/*
,可以安全地假设用户佐野也在群里须藤。后面这一行将覆盖第一行,从而覆盖 NOPASSWD 标签。
%sudo ALL=(ALL:ALL) ALL
因此用户 sano 必须为每个命令输入密码。
参见ArchLinux 维基:
笔记:最自定义的选项应放在文件末尾,因为后面的行会覆盖前面的行。特别是,
%wheel
如果您的用户属于此组,则此行应放在该行之后。