将 sudo 配置为无需密码即可工作

aid*_*dan 8 linux ubuntu sudo

我正在尝试配置 sudo 以允许所有用户无需输入密码即可重新启动 apache。

抛开安全问题不谈,为什么这不起作用?

我将这一行添加到 /etc/sudoers: %admin ALL=NOPASSWD: /usr/sbin/apache2ctl

$sudo -l
User aidan may run the following commands on this host:
    (root) NOPASSWD: /usr/sbin/apache2ctl
    (ALL) ALL

$sudo /usr/sbin/apache2ctl
[sudo] password for aidan:
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助。

Kyl*_*ndt 6

假设您将ALL 规则放在%admin ALL=NOPASSWD: /usr/sbin/apache2ctl 之后,并且您的目标是让 admin 组的用户需要 sudo 的密码,那么除了 apache2ctl 命令之外,这应该可以正常工作。

然而,您可能想要的是可以启动和停止 apache 的用户组,例如 apachestart。然后:

%apachestart ALL= NOPASSWD: /usr/sbin/apache2ctl
Run Code Online (Sandbox Code Playgroud)

我认为您可以通过将 %apachestart 替换为 ALL 来使其真正成为每个人,但我建议更少。

  • 如果您修改了登录用户的组,则只需在此设置中注销和登录即可。(实际上,您甚至不需要这样做;您可以使用 `newgrp` 来更改组。) (4认同)