Apache/Linux: PHP-Exec für User in VirtualHost/Directory einsperren

lukelukeluke

Erfahrenes Mitglied
Hallo,
Ich habe jetzt schon eien Zeit lange herumgesucht, um mein Problem zu lösen:
Auf meinem Webserver (Linux) laufen verschiedene Webseiten (inkl. PHP). Ich möchte nicht, dass die PHP-Skripte im einten VirtualHost/Directory etwas im anderen anstellen könmnen.
Wenn ich einfach verschiedene Virtual Hosts erstelle, kann ich mit einem PHP-Skript im einen eine Datei in einem anderen öffnen oder bearbeiten, da alle Dateien die Rechte des gleichen Unix-Users haben, dessen, welcher Apache ausführt.
Ist SUEXEC oder SUPHP die Lösung für mein Problem? Ich habe beides schon versucht zu kompilieren und mit meinem Apache (2.2.3) zu verwenden, jedoch ist es ziemlich kompliziert und es steht z.B. bei suexec nirgends, dass es die Ausführung von PHP-Skripten tangiert, es steht nur was von CGI/SSI.
Kann ich weiterhin alle Webseiten unter dem gleichen Unix-User laufen lassen aber irgendwie einstellen, dass sie halt in ihrem eigenen Directory eingesperrt sind? Oder muss Apache für jede Webseite einmal mit anderem Unix-User gestartet werden?
Vielen Dank für eure Hilfe!
-Luke

PS: Have das schonmal im Webserver Bereich gepostet, dort weiss das aber anscheinend niemand. Deshalb ist der Beitrag nun hier.
 
Hallo!
PS: Have das schonmal im Webserver Bereich gepostet, dort weiss das aber anscheinend niemand. Deshalb ist der Beitrag nun hier.
Das ist kein Grund für Doppelspostings.
Wenn ein Serveradmin Dir keine Antwort geben kann (will), dann ja wohl erst recht kein "normaler" User.

Zum Problem:
Wenn die Verzeichnisse dem jeweiligen User zugeordnet sind (owner) und PHP im safe_mode läuft, dann kann ein Script auch nicht auf das Verzeichnis oder eine Datei eines anderen Users zugreifen.

Gruss Dr Dau
 
Kann ich weiterhin alle Webseiten unter dem gleichen Unix-User laufen lassen aber irgendwie einstellen, dass sie halt in ihrem eigenen Directory eingesperrt sind? Oder muss Apache für jede Webseite einmal mit anderem Unix-User gestartet werden?
Ja. Nein.

php.ini

Befehl:
open_basedir

Du kannst für jeden VHOST ein/mehrere Verzeichnis(se) per open_basedir festlegen. Das funktioniert auch ohne den sehr restriktiven safe mode.
 
Befehl:
open_basedir
Du kannst für jeden VHOST ein/mehrere Verzeichnis(se) per open_basedir festlegen. Das funktioniert auch ohne den sehr restriktiven safe mode.

Vielen Dank, open_basedir hats gebracht. Ich wusste es würde auch ohne die komplizierteren suphp und suexec einfach in der httpd.conf gehen. Ich hoffe die Sicherheit ist trotzdem gewährleistet, obwohl es so einfach war ;) .
Danke für den Support Neuro.
Code:
<Directory "/home/wwwrun/webseite1">
      php_admin_value open_basedir /home/wwwrun/webseite1
</Directory>

Das ist kein Grund für Doppelspostings.
Wenn ein Serveradmin Dir keine Antwort geben kann (will), dann ja wohl erst recht kein "normaler" User.
Anscheinend doch. Hier sind die richtigen "Cracks", Server Admin sein kann jeder :)

Wenn die Verzeichnisse dem jeweiligen User zugeordnet sind (owner) und PHP im safe_mode läuft, dann kann ein Script auch nicht auf das Verzeichnis oder eine Datei eines anderen Users zugreifen.
Den Safe_Mode muss ich für gewisse Skripte ausschalten. Ausserdem stimmt das schon, aber unter dem User, welcher mein Apache startet, sollen ja mehrere Webseiten laufen, welche sich untereinander nicht stören können. Sie sollen also jede in ihrem eigenen Directory eingesperrt sein.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück