semy
16.03.06, 20:53
Guten Abend,
ich setze momentan sudo ein, um mittels PHP Systembefehle ausführen zu können. Funktioniert auch alles gut soweit.
Mein Apache läuft unter dem Benutzer www-data und der Gruppe www-data.
In die Datei /etc/sudoers habe ichb folgende Zeile hinzugefügt:
www-data ALL = NOPASSWD: ALL
Nun kann ich wie nachfolgend in PHP ein Systembefehl ausführen:
exec("sudo DERBEFEHL");
Noch eine kleine Bemerkung, ich kann und möchte nicht auf sudo verzichten. Nur damit keine Antworten kommen mit z.B. dem Inhalt "vergiss sudo, mach es so...".
So jetzt zu eigentlichen Frage:
Da ich/wir ziemlich viele Kunden haben und nicht möchten, dass ein Kunde mal zufällig einen Befehl wie z.B.
exec("sudo reboot");
o.ä. in seiner PHP-Datei ausführt, möchten wir den sudo-Aufruf nur über ein Passwort gestatten. Ist es also möglich dem User www-data in der Datei /etc/sudoers ein Passwort zuzordnen? Und wenn ja, wie sieht dann der PHP-Befehl aus? Muss ich auf Crypt oder sonstiges achten?
Ich weiß, ich könnte in der PHP.ini einfach den Befehl exec, system etc. verbieten, aber das bringt uns ja nichts, da der Befehl ja dann auch für uns gesperrt ist.
Naja trotz meiner komplexen Beschreibung hoffe ich, dass sich jemand finden wird, der mir helfen kann.
Liebe Grüße,
Semy
ich setze momentan sudo ein, um mittels PHP Systembefehle ausführen zu können. Funktioniert auch alles gut soweit.
Mein Apache läuft unter dem Benutzer www-data und der Gruppe www-data.
In die Datei /etc/sudoers habe ichb folgende Zeile hinzugefügt:
www-data ALL = NOPASSWD: ALL
Nun kann ich wie nachfolgend in PHP ein Systembefehl ausführen:
exec("sudo DERBEFEHL");
Noch eine kleine Bemerkung, ich kann und möchte nicht auf sudo verzichten. Nur damit keine Antworten kommen mit z.B. dem Inhalt "vergiss sudo, mach es so...".
So jetzt zu eigentlichen Frage:
Da ich/wir ziemlich viele Kunden haben und nicht möchten, dass ein Kunde mal zufällig einen Befehl wie z.B.
exec("sudo reboot");
o.ä. in seiner PHP-Datei ausführt, möchten wir den sudo-Aufruf nur über ein Passwort gestatten. Ist es also möglich dem User www-data in der Datei /etc/sudoers ein Passwort zuzordnen? Und wenn ja, wie sieht dann der PHP-Befehl aus? Muss ich auf Crypt oder sonstiges achten?
Ich weiß, ich könnte in der PHP.ini einfach den Befehl exec, system etc. verbieten, aber das bringt uns ja nichts, da der Befehl ja dann auch für uns gesperrt ist.
Naja trotz meiner komplexen Beschreibung hoffe ich, dass sich jemand finden wird, der mir helfen kann.
Liebe Grüße,
Semy