2010-02-07 9 views
8

Ich bin auf einem Shared-Hosting-Paket auf einem LAMP-Stack ohne Shell-Zugriff.403 Auf Symlink in Web-Root verboten

Ich kann Symlinks mit PHP symlink() Funktion erstellen.

Lassen Sie uns sagen, dass meine Web-Root /home/www/user1/public

ist Lassen Sie uns sagen, ich habe ein echtes Verzeichnis mit dem Namen /home/www/user1/public/real_dir

Und ich erstellen einen Symlink /home/www/user1/public/fake_dir namens Hinweis auf real_dir

Warum würde ich eine 403 Forbidden bekommen beim Versuch, auf www.mydomain.com/fake_dir zuzugreifen, aber nicht, wenn Sie versuchen, auf www.mydomain.com/real_dir zuzugreifen?

Es sollte kein Rechtsproblem sein, denn wenn ich eine Datei in PHP erstelle, kann ich darauf gut zugreifen.

Ich habe versucht, FollowSymlinks aus und wieder in .htaccess (es war eingeschaltet), aber kein Glück.

Könnte es sein, dass FollowSymlinks in einer .htaccess-Datei als nicht überschreibbar definiert ist? Oder ist bei der Arbeit mit Symlinks in Apache noch etwas zu beachten?

Antwort

4

Apache muss konfiguriert werden, um den Zugriff auf das Verzeichnis im Dateisystem zu ermöglichen. Dies muss von einem Systemadministrator durch Einfügen einer < Directory> -Direktive in die Apache-Konfigurationsdateien (httpd.conf) vorgenommen werden.

Da sich das reale Verzeichnis innerhalb des Webstamms befindet, muss es zugänglich sein, aber FollowSymLinks wurde möglicherweise nicht für das Verzeichnis aktiviert - dies muss auch der Direktive < Directory> hinzugefügt werden.

Siehe http://httpd.apache.org/docs/2.0/mod/core.html#directory

+0

Also, wenn es nicht auf diese Weise konfiguriert ist und 'FollowSymlinks' ausgeschaltet ist, wird beim Versuch, auf einen Symlink zuzugreifen (obwohl das Ziel auch im Web-Root ist), ein 403-Zeichen gesetzt? Ist das der Grund? –

+0

Entschuldigung, ich lese gerade Ihre Frage erneut und habe gesehen, dass das echte Verzeichnis im Web-Root ist, so dass es zugänglich sein wird, aber FollowSymLinks ist möglicherweise nicht aktiviert. Ich habe meine Antwort aktualisiert, um dies zu berücksichtigen. – Sam

+0

-1 Dies ist immer noch keine Antwort auf die Frage von OP. OP scheint sich der "FollowSymlinks" -Option bewusst zu sein. Aber er fragt, ob das Setzen von '.htaccess' aus der httpd.conf ausgeschlossen werden kann. –

0

Diese mögliche SELinux Sicherheitsproblem ist.

cat/selinux/erzwingen Wenn der Wert 1 ist, setze ihn auf 0 und starte Apache neu.

+0

Das OP hat keinen Shell-Zugriff, wie in der ersten Zeile seiner Frage angegeben. –

Verwandte Themen