Lassen Sie den normalen Benutzer den Dienst mit /etc/sudoers neu starten

Lassen Sie den normalen Benutzer den Dienst mit /etc/sudoers neu starten

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_restartund 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/sudoersenthält

#includedir /etc/sudoers.d

Und ich erhalte sogar dasselbe Ergebnis, wenn ich den Inhalt der user_restartDatei direkt hinzufüge /etc/sudoers.

Mir gehen die Ideen aus ...

Antwort1

Damit sudoerses 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, systemctlwird auf die Verwendung von zurückgegriffen.Polkitzur Autorisierung.

Antwort2

um jedem normalen Benutzer startoder restartDienst 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

verwandte Informationen