有人可以解释一下这些的具体工作原理吗/etc/sudoers
?(我做了一些研究,所以请不要分享任何链接)
我想添加我自己(成员sudo
)来执行无需密码的命令。但它再次要求输入密码。
# User
root ALL=(ALL:ALL) ALL
myself ALL=(ALL:ALL) NOPASSWD:/bin/apt update, PASSWD:/bin/apt install*
# Groups
%sudo ALL=(ALL:ALL) ALL
答案1
我几乎是从这里偷来的:是否可以仅授予 sudo 访问特定命令的权限?
sudo visudo -f /etc/sudoers.d/Username
并将其添加到文件中:
Username ALL = NOPASSWD: /usr/bin/apt* update
Username ALL = NOPASSWD: /usr/bin/apt* install
我不知道如何将其变成一行代码。希望这能有所帮助。
答案2
sudoers 文件中配置行的顺序很重要:最后的适用线路获胜。
如果用户myself
是该组的成员sudo
,则该用户发出的所有命令将始终与该%sudo ALL=(ALL:ALL) ALL
行匹配。由于没有NOPASSWD:
标志,因此将询问密码。
修复方法是/etc/sudoers
按照特殊性增加的顺序排列配置行:
# Groups
%sudo ALL=(ALL:ALL) ALL
# User
root ALL=(ALL:ALL) ALL
myself ALL=(ALL:ALL) NOPASSWD:/bin/apt update, PASSWD:/bin/apt install*
当使用此命令时,如果用户myself
运行sudo apt update
,它将使用标志匹配最后一行NOPASSWD:
。
答案3
这是我在 askubuntu 上的第一篇文章,但我很确定你可以这样做,创建一个文件,其中username
包含/etc/sudoers.d/
:
username ALL = NOPASSWD: ALL
答案4
您可以简单地将下一行添加到您的 sudoers 文件中:
username ALL=NOPASSWD: command1, command2, command3 [...]
请记住用逗号分隔所有希望用户在没有密码提示的情况下执行的命令。