open_basedir Problem

open_basedir Problem

am 23.06.2006 13:49:54 von Michael Vistein

Hallo,

ich habe ein merkwürdiges Problem (PHP 4.3.10):

in der Apache Konfiguration ist open_basedir auf

/var/pfad/zum/project/:/usr/share/php:/tmp

gesetzt.

Im Projekt kommt beim umbenennen dann ne tolle Fehlermeldung, dass

/var/pfad/zum/project/v1/datei.txt nicht im erlaubten Pfad
(/var/pfad/zum/project/:/usr/share/php:/tmp) enthalten wäre.

Da frag ich mich jetzt doch, wie ich das verstehen soll, zumal die Pfade
gleich sind! Kann das damit zusammenhängen, dass /var/pfad ein Symlink
auf /daten/pfad ist? In der apache-Konfiguration wird aber auch sonst
überall /var/pfad verwendet.

Viele Grüße,

Michael Vistein

Re: open_basedir Problem

am 23.06.2006 14:01:49 von Frank Schenk

Michael Vistein wrote:
> Im Projekt kommt beim umbenennen dann ne tolle Fehlermeldung, dass
>
> /var/pfad/zum/project/v1/datei.txt nicht im erlaubten Pfad
> (/var/pfad/zum/project/:/usr/share/php:/tmp) enthalten wäre.
>
> Da frag ich mich jetzt doch, wie ich das verstehen soll, zumal die Pfade
> gleich sind! Kann das damit zusammenhängen, dass /var/pfad ein Symlink
> auf /daten/pfad ist? In der apache-Konfiguration wird aber auch sonst
> überall /var/pfad verwendet.

Hallo Michael,

aus dem Handbuch:

When you want to restrict access to only the specified directory, end
with a slash. For example: "open_basedir = /dir/incl/"

Quelle: http://de2.php.net/manual/en/features.safe-mode.php

Also änder mal den open_basedir Eintrag in:

/var/pfad/zum/project:/usr/share/php:/tmp

dann sollte es gehen.

gruß, Frank

Re: open_basedir Problem

am 23.06.2006 14:29:09 von Michael Vistein

Hallo,

Frank Schenk schrieb:
> Also änder mal den open_basedir Eintrag in:
>
> /var/pfad/zum/project:/usr/share/php:/tmp
>
> dann sollte es gehen.

Nein, daran lags nicht. Das wird ja nur als Präfix gewertet, d.h. dann
dürfte auch /var/pfad/zum/project2/nedatei.txt gelesen werden, was
eigentlich unerwünscht ist.

Das Problem scheint gewesen zu sein, dass PHP beim testen
/var/pfad/zum... in /daten/pfad/zum... umwandelt, weil da eben ein
Symlink vorhanden ist. Leider wird das nicht bei den Pfaden im
open_basedir gemacht und auch nicht angezeigt, was dann zu der
merkwürdigen Fehlermeldung führt. Also muss ich überall die absoluten
Pfade angeben ...

Viele Grüße,

Michael Vistein