如何使用 sudoers 文件允许特定用户无需密码执行命令?

如何使用 sudoers 文件允许特定用户无需密码执行命令?

有人可以解释一下这些的具体工作原理吗/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 [...]

请记住用逗号分隔所有希望用户在没有密码提示的情况下执行的命令。

相关内容