Michael Hilscher <macvampi@michael-hilscher.de> schrieb: > Ich weiss nicht recht. Die Syntax für safe_mode sieht bei mir anders > aus. Allerdings hast Du ja geschrieben, dass Dir open_basedir Probleme > bereitet. Nun verstehe ich allerdings nicht _was_ nicht funktioniert. Das Problem ist ja, daß das Skript des User funktioniert obwohl es das nicht sollte. Es macht ein ls -l unter /var/www, dann ändert er es auf ein interessantes Verzeichnis das der Apache lesen kann, dann macht er sein system("cat INTERESSANTE_DATEI") und liest Daten aus wie die config.php des Webforums das läuft ( http://fud.prohost.org ), wo das MySQL-Passwort des Forums drinsteht, etc.... Bei der Einstellung: <VirtualHost XXX.XXX.XXX.XXX> ServerName SERVER/members/USER ServerAlias SERVER/members/USER DocumentRoot /var/www/members/USER User USER Group USER php_admin_flag safe_mode on php_admin_value open_basedir /var/www/members/USER </VirtualHost> geht das Skript immer noch: <?php echo "You have been 0wnzd"; system("ls /var/www/ -l"); system("cat /var/www/....."); ?> Füge ich dem Virtuel Host ein <Directory> mit /var/www/members/* hinzu mit open_basedir auch auf /var/www/members/* (ein genauer Pfad wie /var/www/members/USER ändert nichts ?!) und safe_mode on, dann geht das Skript nicht mehr ABER auch nichts das nur unterhalb des Verzeichnisses arbeiten würde bzw. ein <?phpinfo?> oder ein <?php echo "test"; ?> > OpenBasedir sperrt Befehle in das angegebene Dir und seine > Unterverzeichnisse ein. Falls Dein PHP Script also irgendwo ausserhalb > vom open_basedir zugreifen will, erklärt das ein "funktioniert nicht". Das wäre ja auch das gewünschte :) . Aber entweder alle PHP-Sachen gehen oder keine, ausser ein <?php echo "test; ?> zählt als "ausserhalb". > php_admin_value open_basedir /home/kundenserver/xyz > php_admin_flag safe_mode on > > Wie gesagt - bis auf den Safe_mode ist es bei mir identisch. Wie du oben siehst hab ich das ergänzt, ändert aber nix :( . > Falls Dein User in /var/www/members/USER sein Webverzeichnis hat und > darauf zugreifen kann, ist es schon richtig so. Aber wie gesagt - WAS > geht denn nicht? Welche Fehlermeldungen kommen denn? Siehe oben, er kann entweder überall zugreifen oder nirgends, beides nicht erwünscht. Und das nur mit einer Konfiguration die absolut nicht dem entspricht was die Dokumentation sagen würde. Ich benutze PHP und Apache aus Woody mit Sicherheitsupdates, also keine Veränderungen. > Was für Passwörter denn? /etc/passwd oder gar /etc/shadow (LOL)? Liegen > die Passwortdateien ausserhalb vom Open_basedir? Nein,natürlich nicht /etc.. , es geht um die Files die auch unter /var/www liegen und vom User www-data gelesen werden kann, wie eben z.B. die config.php eines Webforums, eines Portals usw....usf.... > > Du kannst mit dem minni PHP Script: > --- cut --- > <?php > echo phpinfo (); > ?> > --- /cut --- > überprüfen, welche Einstellungen für den Ort in dem das PHP Script > ausgeführt wurde gelten. open_basedir no value no value safe_mode Off Off Er übernimmt die Einstellungen also nicht....aber warum? Herzlichen Dank für weitere Hilfe, Ciao, Steve -- www.cargal.org GnuPG-key-ID: 0x051422A0 "Be the change you want to see in the world"-Mahatma Gandhi Jabber-ID: lotussteve@cargal.org
Attachment:
pgpIIXtw0XM3W.pgp
Description: PGP signature