我在 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
using 中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!
我错过了什么吗?
运行 sudo 时,您需要成为acme
-u acme
用户,而不是.另一个可能的问题:
sudoers 文件中的
%
表示这acme
是一个组。当您的用户在名为 的组中时,这不是问题acme
,但如果他不是。