Ich möchte Dienste von einem PHP-Skript aus neu starten können. Laufen unter dem WWW-Benutzerkonto.
Was ist die bevorzugte Methode, um diese Aktionen auszuführen?
Ich denke, ich kann platzieren, um eine Datei mit que'd Befehlen zu erstellen, die von CRON gelesen werden, aber die Lösung juckt.
Ich denke an einen winzigen Dienst, der unter root ausgeführt wird und vordefinierte "Methoden" zulässt, sodass keine willkürlichen root-Aktionen ausgeführt werden können.
Gibt es ein Tool dafür?
linux
security
web-server
root
user65297
quelle
quelle
Antworten:
Sie könnten das Rad neu erfinden, aber ehrlich gesagt verwende ich dafür passwortloses sudo. Beispielsweise muss mein Überwachungssystem einen Befehl ausführen können, um das Hardware-RAID zu überprüfen. Dies erfordert Root-Rechte, aber ich möchte nicht das gesamte Überwachungssystem als Root ausführen, sondern in
sudoers
einer Zeile, in der es heißtFühren Sie dann den Befehl
sudo /usr/lib/nagios/plugins/check_md_raid
als überwachender Benutzer aus, wenn ich das RAID überprüfen muss.Sie könnten eine sudoers Linie haben, die sagte
dann muss php ausgeführt werden
sudo /etc/rc.d/init.d/myservice restart
.quelle
Sehen Sie sich sudo an : Hier können Sie Aktionen angeben, die als anderer Benutzer ausgeführt werden können (in Ihrem Fall root).
Sie können zum Beispiel hinzufügen
/etc/sudoers
(bearbeiten Sie die Datei nicht direkt verwendenvisudo
)Siehe
man sudo
für die Details und die Syntax der Dateiquelle
/etc/sudoers
Datei bearbeiten . Wenn es in irgendeiner Weise syntaktisch inkorrekt ist, ist das Zurücksetzen ein Albtraum,sudo
in den Sie zurückkehren müssen, aber Sie können nicht, dass Sie Sudo einfach ausgelöscht haben. Am Ende müssen Sie eine Rettungs-CD / DVD verwenden und die Partition manuell mounten.shudders
? Es ist wahr, dass Visudo Vernunftsprüfungen durchführt, aber sie helfen nicht, nachdem der Schaden behoben ist: P