私は展開の世界に慣れていませんが、現在進行中の作業は次のとおりです。 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
。