Ejecuto un servidor web en Debian 10 (Buster) y Apache 2.4.38. Creé un usuario especial acme
que ejecuta scripts para renovar certificados TLS.
$ cat /etc/passwd | grep ^acme
acme:x:1002:1002::/var/acme:/usr/bin/nologin
$ cat /etc/group | grep ^acme
acme:x:1002:
A este acme
usuario se le debe permitir recargar la configuración de Apache 2 después de que se renovaron los certificados. Entonces agregué esta línea a mi /etc/sudoers
uso visudo(8)
:
%acme ALL=(root) NOPASSWD: /etc/init.d/apache2 reload
Desafortunadamente, esto no funciona:
$ 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!
¿Me he perdido algo?
Respuesta1
NecesitasSERel usuario acme cuando ejecuta Sudo, no con -u acme
.
acme@host:~ $ sudo /etc/init.d/apache2 reload
Otro posible problema:
El %
contenido en su archivo sudoers indica que acme
es un grupo. Esto no es un problema cuando su usuario está en un grupo llamado acme
, pero sí lo es si no lo está.