Über Webserver Shell Scripte mit Root Rechten aufrufen
Posted: 2007-01-15 16:22
Hallo Leute,
ich weiss, daß vielen von Euch schon sie Überschrift die Schweissperlen auf die Stirn treibt. Ich habe jedoch mal ne Idee und würde gern Eure Meinung dazu hören.
Ich lasse meinen Webserver mit unterschiedlichen Usern laufen (per suexec).
Gehen wir nun mal davon aus, der Server einer Seite xxx.de läuft mit dem user web100. Nun möchte ich daß nur 1 einziges PHP Script eine administrative Aufgabe auf meinem Rootserver ausführt, das Root Rechte benötigt.
Ich habe mir da so gedacht:
1. PHP Script (Aufruf durch web100) ruft per system("scriptx"); auf
2. Die Datei "scriptx" ist eine Binärdatei (in ANSI-C) geschriben
und gehört Root, mit gesetztem SUID-Bit, sodaß sie mit Root-Rechten läuft.
3. Diese Datei führt nun eine Systemoperation durch, dessen Parameter sie sich aus einer MYSQL Datenbank holt.
Eigentlich sollte doch diese Lösung kein Einfallstor bieten, da ich ja die Funktion aufrufe, ohne irgendwelche Parameter mitzuliefern, die eventuell durch Usereingaben manipuliert worden sein könnte. Oder?
Eigentlich ist das doch ne ganz sichere Angelegenheit, oder was meint Ihr dazu?? Sicherheit sollte nämlich neben dem Konfort weit oben stehen!!!
ich weiss, daß vielen von Euch schon sie Überschrift die Schweissperlen auf die Stirn treibt. Ich habe jedoch mal ne Idee und würde gern Eure Meinung dazu hören.
Ich lasse meinen Webserver mit unterschiedlichen Usern laufen (per suexec).
Gehen wir nun mal davon aus, der Server einer Seite xxx.de läuft mit dem user web100. Nun möchte ich daß nur 1 einziges PHP Script eine administrative Aufgabe auf meinem Rootserver ausführt, das Root Rechte benötigt.
Ich habe mir da so gedacht:
1. PHP Script (Aufruf durch web100) ruft per system("scriptx"); auf
2. Die Datei "scriptx" ist eine Binärdatei (in ANSI-C) geschriben
und gehört Root, mit gesetztem SUID-Bit, sodaß sie mit Root-Rechten läuft.
3. Diese Datei führt nun eine Systemoperation durch, dessen Parameter sie sich aus einer MYSQL Datenbank holt.
Eigentlich sollte doch diese Lösung kein Einfallstor bieten, da ich ja die Funktion aufrufe, ohne irgendwelche Parameter mitzuliefern, die eventuell durch Usereingaben manipuliert worden sein könnte. Oder?
Eigentlich ist das doch ne ganz sichere Angelegenheit, oder was meint Ihr dazu?? Sicherheit sollte nämlich neben dem Konfort weit oben stehen!!!