使用 ACME 用户重新加载 Apache

使用 ACME 用户重新加载 Apache

我在 Debian 10 (Buster) 和 Apache 2.4.38 上运行 Web 服务器。我创建了一个特殊用户acme来运行用于更新 TLS 证书的脚本。

$ cat /etc/passwd | grep ^acme
acme:x:1002:1002::/var/acme:/usr/bin/nologin
$ cat /etc/group | grep ^acme
acme:x:1002:

acme证书更新后,应允许此用户重新加载 Apache 2 配置。因此,我将以下行添加到我的/etc/sudoers使用中visudo(8)

%acme   ALL=(root) NOPASSWD: /etc/init.d/apache2 reload

不幸的是,这不起作用:

$ sudo -u acme /etc/init.d/apache2 reload
[....] Reloading apache2 configuration (via systemctl): apache2.serviceFailed to reload apache2.service: Access denied                                                                                                                  
See system logs and 'systemctl status apache2.service' for details.                                                                                                                                                                     
 failed!

我是否遗漏了什么?

答案1

你需要运行 sudo 时使用用户 acme,而不是-u acme

acme@host:~ $ sudo /etc/init.d/apache2 reload

另一个可能的问题:

%sudoers 文件中的 表示是acme一个组。如果您的用户属于 组acme,则这不是问题,但如果不属于 组,则会出现问题。

相关内容