Перезагрузить Apache с помощью пользователя ACME

Я запускаю веб-сервер на Debian 10 (Buster) и Apache 2.4.38. Я создал специального пользователя 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
задан 28 July 2021 в 18:23
1 ответ

Вам нужно БЫТЬ пользователем acme при запуске sudo, а не с -u акме.

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

Еще одна возможная проблема:

% в вашем файле sudoers означает, что acme является группой. Это не проблема, когда ваш пользователь находится в группе под названием acme, но проблема возникает, если он не состоит в ней.

1
ответ дан 28 July 2021 в 18:49

Теги

Похожие вопросы