Ohne sudo/root systemctl?
Ich will "systemctl" + $ + "apache2" ($ = Start,stop,restart) ohne sudo/root ausführen, für Script...
NUR die drei nicht systemctl in general.
Linux,raspi/debian
Thx im voraus.
2 Antworten
ohne Superuserrechte wird das nicht gehen.
Dein Problem dürfte sein, dass du aufgefordert wirst, das root-Passwort (bei einigen Distributionen das User-Passwort) einzugeben.
In Scripten macht sich das nicht gut.
Ist das so?
Auch wenn ich hier auf ein Sicherheitsrisiko hinweisen muss, du kannst das auch völlig ohne Passwort machen.
Editiere die Datei /etc/sudoers und trage
hinter der Zeile
## User privilege specification (oder so ähnlich)
<dein-User-Name> ALL=(ALL) NOPASSWD: ALL
ein.
Dein Script fragt dann nicht mehr nach einem Passwort, wenn dort
sudo systemctl ...
steht.
Das würde natürlich auch bei jeden anderen Befehl mit sudo so sein.
Ich mache so etwas mit ssh und Einträgen in der Datei .ssh für den User und für root.
Dann mit ssh root@localhost systemctl ...
Bei Bedarf kann ich dir auch schreiben, wie man das macht.
Statt ALL am Ende kannst du in der sudoers auch den konkreten Befehl angeben, der erlaubt werden soll. Aber mit komplettem Pfad!
Dann musst Du die Befehle für den User über visudo (/etc/sudoers) erlauben.
Schon versucht habe den konkreten Pfad angegeben, hat aber nicht funktioniert.
Danke, aber ich möcht die Sache mit so wenig Sicherheitsrisiko wie möglich machen.
Ich denke ich brauche die Rechte für den einzelnen Service, werde die Antwort hier kommentieren wenn ich sie gefunden habe.