使特定用户能够在 Ubuntu 16.04 上启动服务监控时无需输入密码

使特定用户能够在 Ubuntu 16.04 上启动服务监控时无需输入密码

我想在 Ubuntu 16.04 上以其他用户身份运行 monit,但它一直提示输入密码。看来 policykit 是 Ubuntu 16.04 上的新功能。我该如何将此服务放入忽略身份验证列表中?

我的目标是用户 1 能够运行service monit start,并且service monit stop无需输入密码。

以 root 身份运行它不是一个选项

[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;不好;供应商预设:已启用)<- 此行显示它正在使用 init.d 旧文件而不是新类型的服务文件,所以我不能只编辑服务文件并将其指向特定用户。

答案1

我找到解决方案了!

添加一个文件,/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

相关内容