Ich habe einen Dienst ( kado-demo.service
), den ein normaler Benutzer ( kado
) ohne Eingabe eines Kennworts neu starten können sollte.
Ich habe erstellt /etc/sudoers.d/user_restart
und hinzugefügt
kado ALL=NOPASSWD: /bin/systemctl restart kado-demo.service
Berechtigungen:
-r--r----- 1 root root 585 Mar 5 10:47 user_restart
Als Benutzer k sollte ich nun in der Lage sein, den angegebenen Befehl auszuführen, aber Folgendes passiert:
/bin/systemctl restart kado-demo.service
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to restart 'kado-demo.service'.
Multiple identities can be used for authentication:
(...)
Das ist das gleiche Ergebnis wie vor dem Hinzufügen der Datei.
Das /etc/sudoers
enthält
#includedir /etc/sudoers.d
Und ich erhalte sogar dasselbe Ergebnis, wenn ich den Inhalt der user_restart
Datei direkt hinzufüge /etc/sudoers
.
Mir gehen die Ideen aus ...
Antwort1
Damit sudoers
es wirksam wird, müssen Sie tatsächlich verwenden sudo
. :) Gehen Sie wie folgt vor:
sudo systemctl restart kado-demo.service
Und es wird nicht nach einem Passwort gefragt.
Wenn Sie nicht verwenden sudo
, systemctl
wird auf die Verwendung von zurückgegriffen.Polkitzur Autorisierung.
Antwort2
um jedem normalen Benutzer start
oder restart
Dienst Folgendes zu ermöglichen:
sudo visudo
userB ALL=NOPASSWD: /bin/systemctl restart serviceA.service, /bin/systemctl stop serviceA.service, /bin/systemctl start serviceA.service, /bin/systemctl status serviceA.service