web-dev-qa-db-ja.com

Ubuntu 16.04で特定のユーザーがパスワードを要求せずに開始できるようにサービスモニターを可能にする

Ubuntu 16.04で別のユーザーとしてmonitを実行したいのですが、パスワードの入力を求められ続けます。ポリシーキットはUbuntu 16.04で新しく追加されたようです。このサービスを認証リストを無視する方法を教えてください。

私の目標は、user1がservice monit startservice monit stopを実行できるようになり、パスワードのプロンプトが表示されないことです。

ルートとして実行することはオプションではありません

[email protected]:~$ service monit start
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to start 'monit.service'.
Authenticating as: root
Password: 

polkit-agent-helper-1: pam_authenticate failed: Authentication failure
==== AUTHENTICATION FAILED ===
Failed to start monit.service: Access denied
See system logs and 'systemctl status monit.service' for details.
[email protected]:~$ 
[email protected]:~$ systemctl status monit.service 
* monit.service - LSB: service and resource monitoring daemon
   Loaded: loaded (/etc/init.d/monit; bad; vendor preset: enabled)
   Active: active (exited) since Fri 2017-06-30 11:30:51 GMT; 6h ago
     Docs: man:systemd-sysv-generator(8)

ロード済み:ロード済み(/etc/init.d/monit; bad;ベンダープリセット:有効)<-新しいタイプのサービスファイルの代わりにinit.d古いファイルを使用していることを示すこの行は、サービスファイルを編集して特定のユーザーを指すようにします。

2
Thomas G. Lau

私は解決策を見つけました!

これらのコンテンツを含むファイル/etc/polkit-1/localauthority/50-local.d/monit.pklaを追加します

[monit service]
Identity=unix-user:user1
Action=org.freedesktop.systemd1.manage-units
ResultAny=yes
ResultInactive=yes
ResultActive=yes

これで、user1は問題なくmonitを起動できます

3
Thomas G. Lau