Je souhaite exécuter monit en tant qu’autre utilisateur sous Ubuntu 16.04, mais il demande toujours un mot de passe. Il semble que policykit soit nouveau sur Ubuntu 16.04. Comment pourrais-je mettre ce service dans la liste d'authentification Ignorer?
Mon objectif est que l'utilisateur1 puisse exécuter service monit start
et service monit stop
sans obtenir d'invite de mot de passe.
L'exécuter en tant que root n'est pas une option
[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)
Chargé: chargé (/etc/init.d/monit; mauvais; préréglage du fournisseur: activé) <- cette ligne indique qu'il utilise l'ancien fichier init.d au lieu d'un nouveau type de fichier de service. Par conséquent, je ne peux pas simplement modifier le fichier de service et pointez-le vers un utilisateur spécifique.
J'ai trouvé la solution!
Ajouter un fichier, /etc/polkit-1/localauthority/50-local.d/monit.pkla
avec ce contenu
[monit service]
Identity=unix-user:user1
Action=org.freedesktop.systemd1.manage-units
ResultAny=yes
ResultInactive=yes
ResultActive=yes
Maintenant, user1 peut commencer à surveiller sans problèmes