Seite 1 von 1

[gelöst] Services mit User Rechten neu starten

Verfasst: 27.05.2020 11:20:22
von joe2017
Hallo zusammen,

ich suche gerade nach einer Möglichkeit einem standard Benutzer die Berechtigung zu erteilen, eigen erstellte services neu starten zu dürfen.
Ich möchte diesem natürlich keine sudo Rechte erteilen. Gibt es hier einen anderen Ansatz?

Der Benutzer wird sich mittels ssh anmelden und soll anschließend die Services starten, stoppen und neustarten können.
Wenn möglich würde ich dies gerne auf spezielle Services einschränken.

Re: Services mit User Rechten neu starten

Verfasst: 27.05.2020 12:07:29
von cronoik
Helfen dir User Units [1]?

Des Weiteren kannst (solltest!) du sudo auch auf bestimmte Befehle einschraenken.

[1] https://wiki.ubuntuusers.de/systemd/User_Units/

Re: Services mit User Rechten neu starten

Verfasst: 27.05.2020 12:45:53
von smutbert
Die User Units hätte ich auch vorgeschlagen. User Units werden halt für jeden Benutzer gestartet und das normalerweise erst wenn der sich anmeldet, aber das kann man für einzelne User auch ändern (loginctl enable-linger benutzername). Wenn es also nur um einen oder wenige Benutzer gibt, der oder die jeweils nur eigene Services manipulieren dürfen sollen, wäre das vielleicht das Mittel der Wahl.

Sonst bleiben nur system-units entweder in Kombination mit einem entsprechend konfigurierten sudo oder auch mit policykit. Mit einer policykit-Regel kann man recht einfach bestimmten Benutzern erlauben einen bestimmten Dienst zu starten oder beenden.

Re: Services mit User Rechten neu starten

Verfasst: 27.05.2020 13:10:00
von joe2017
Ich habe auch noch folgendes hierzu gefunden. Jetzt ist die Frage ob man das generell nicht so macht.

Unter dem Verzeichnis /etc/sudoers.d/ eine neue Datei mit meinem Benutzer anlegen.
Hier hab ich jedoch Probleme mit der Syntax. Irgendwas stimmt hier noch nicht.

sudo nano /etc/sudoers.d/username

Code: Alles auswählen

usersname	ALL=(ALL)NOPASSWD:/bin/systemctl start mein-service.service
usersname	ALL=(ALL)NOPASSWD:/bin/systemctl stop mein-service.service
usersname	ALL=(ALL)NOPASSWD:/bin/systemctl restart mein-service.service
NOPASSWD möchte ich eigentlich nicht verwenden.

Re: Services mit User Rechten neu starten

Verfasst: 27.05.2020 14:51:24
von cronoik
joe2017 hat geschrieben: ↑ zum Beitrag ↑
27.05.2020 13:10:00
Unter dem Verzeichnis /etc/sudoers.d/ eine neue Datei mit meinem Benutzer anlegen.
Hier hab ich jedoch Probleme mit der Syntax. Irgendwas stimmt hier noch nicht.
Was soll denn herauskommen? Hast du mehrere user die das sollen? Sollen die alle den gleichen Service ausfuehren oder hat jeder unterschiedliche?
joe2017 hat geschrieben: ↑ zum Beitrag ↑
27.05.2020 13:10:00
NOPASSWD möchte ich eigentlich nicht verwenden.
Du musst das nicht setzen. Wenn du es nicht setzt, muss der user sein Passwort eingeben.

Re: Services mit User Rechten neu starten

Verfasst: 27.05.2020 15:27:32
von joe2017
Ich habe nur ein User der bestimmte Services starten und stoppen muss.

Wenn ich die Syntax auf folgende ändere hab ich wieder einen Syntax Fehler

Code: Alles auswählen

usersname	ALL=(ALL):/bin/systemctl start mein-service.service
Mit dem NOPASSWD ist die Syntax richtig

Code: Alles auswählen

usersname	ALL=(ALL)NOPASSWD:/bin/systemctl start mein-service.service

Re: Services mit User Rechten neu starten

Verfasst: 27.05.2020 15:36:34
von smutbert

Code: Alles auswählen

username	ALL=(ALL)	/bin/systemctl start mein-service.service
Du kennst visudo?

Re: Services mit User Rechten neu starten

Verfasst: 27.05.2020 15:49:31
von joe2017
visudo... Das habe ich gerade gelesen, dass hier die Syntax geprüft wird.
Ich muss nur noch schnell schauen wie ich das verwende.

Deine Syntax werde ich gleich noch testen. Hat funktioniert! Perfekt :hail: