ACME ユーザーを使用して Apache をリロードする

ACME ユーザーを使用して Apache をリロードする

私は Debian 10 (Buster) と Apache 2.4.38 で Web サーバーを実行しています。TLSacme証明書を更新するためのスクリプトを実行する特別なユーザーを作成しました。

$ 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/sudoersusingに追加しました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

考えられるもう 1 つの問題:

%sudoers ファイル内の は、 がグループであることを示します。acmeユーザーが というグループに属している場合は問題になりませんacmeが、そうでない場合は問題になります。

関連情報