root以外のユーザーから "service nginx restart"を実行してみてください。

root以外のユーザーから

私は展開の世界に慣れていませんが、現在進行中の作業は次のとおりです。 DigitalOceanの新しいUbuntu(Ubuntu 16.04.4 LTS)ドロップレットがあります。 nginxをインストールして設定しましたが、すべてがスムーズに実行されます。次のコマンドを使用してこの機能をオン/オフします。service nginx start/service nginx stopしかし、これは異なる名前のユーザーを使用して実行できる必要がありますpepito

実行しようとすると、次の結果がservice nginx start表示さpepitoれます。

~# service nginx restart
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to restart 'nginx.service'.
Authenticating as: pepito
Password: 

しかし、私はCapistranoで実行するので、パスワードを尋ねたくないので、これを追加しましたvisudo

pepito ALL=(ALL) NOPASSWD: /usr/sbin/service nginx*

やり直しても同じ問題です。引き続きインターネット検索と読書をして、これがメッセージであることを==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===知り、Polkitそれについての内容を読み、次のファイルを作成しました。/etc/polkit-1/localauthority/50-local.d/nginx.pkla

Identity=unix-user:pepito
Action=org.freedesktop.systemd1.manage-units
ResultInactive=yes
ResultActive=yes

もちろん、nginxでnginxを起動して停止しようとすると機能しませんpepito。私は何をもっと試すべきかわかりません!

ベストアンサー1

visudo編集中のファイルを使用するコマンドは、/etc/sudoersコマンドにプレフィックスを追加した場合にのみsudo適用されますsudo service nginx start

おすすめ記事