Starten Sie rspamd.service als Nicht-Root-Benutzer neu

Starten Sie rspamd.service als Nicht-Root-Benutzer neu

Ich habe eine Webseite mit einer Schaltfläche. Wenn der Benutzer auf die Schaltfläche klickt, restart.shwird ein Skript auf dem Server ausgeführt. Dieses Skript enthält:

#!/bin/bash
systemctl restart rspamd.service

Nach dem Klicken auf die Schaltfläche restart.shwird ausgeführt, rspamd.service wird jedoch nicht neu gestartet:„Neustart von rspamd.service fehlgeschlagen: Zugriff verweigert“Da das Skript durch Klicken auf eine Schaltfläche auf der Webseite ausgeführt wird, ist der tatsächliche Benutzer, der es auf dem Server ausführt www-data, . Ich habe versucht, das Suid-Bit zu setzen, um das Skript als Root auszuführen, aber es funktioniert nicht. Wie kann ich rspamd.service als www-dataBenutzer neu starten?

Antwort1

Gelöst mitsudo. Ich habe es schon einmal versucht, aber ich habe es in der falschen Reihenfolge geschrieben. Bearbeitensudoersmit visudound fügen Sie dies am Ende der Datei hinzu:

www-data ALL = NOPASSWD: /bin/systemctl restart rspamd.service

Dann kann ich einfach loslaufen sudo systemctl restart rspamd.serviceund alles läuft gut. Danke.

verwandte Informationen