Directory Listing

Aus schokokeks.org Wiki
Version vom 2. September 2008, 23:00 Uhr von Ruderich (Diskussion | Beiträge) (typo)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Wir haben im Webserver eingestellt, dass Verzeichnis-Inhalte nicht automatisch als Dateiliste angezeigt werden wenn keine index.html bzw. index.php-Datei vorhanden ist. Der Grund dafür ist, dass ein vergessenes Index-Dokument nicht dazu führen sollte, dass alle Welt sieht, was man alles für Dateien hat.

Zugriffsrechte

Wie auf unserer Extra-Seite zum Thema Zugriffsrechte beschrieben, muss der Webserver zuerst per ACL Lese- und Betretungsrecht bekommen.

setfacl -m u:apache:rx verzeichnis

Dies ist im Normalfall schon so eingestellt.

Directory-Listing freischalten

Mittels einer Datei .htaccess muss dem Webserver mitgeteilt werden, dass er das betreffende Verzeichnis und alle Unterverzeichnisse als Dateiliste aufbereiten darf.

Diese Datei muss folgenden Inhalt haben:

Options +Indexes

Die Datei kann in jedem Verzeichnis liegen und gilt dabei für das aktuelle und alle darunter liegenden Verzeichnisse. Somit kann eine gesamte Domain oder auch nur ein einzelnes Unterverzeichnis freigegeben werden.

Für einzelne Unterordner wieder sperren

Natürlich kann diese Dateiliste auch für einzelne Unterordner eines freigegebenen Ordners wieder abgeschaltet werden.

Dafür gibt es zwei Möglichkeiten:

per .htaccess

Analog zum oben beschriebenen Weg, kann man mit einer neuen .htaccess-Datei auch wieder die Dateiliste für einzelne Ordner abschalten. Dazu muss die Datei diesen Inhalt haben:

Options -Indexes

per ACLs

Sobald der Apache keine Leserechte mehr auf ein Verzeichnis hat, kann er keine Dateiliste mehr anzeigen. Das Leserecht kann man einfach mittels

setfacl -m u:apache:x verzeichnis

entfernen (»nur Betreten«).

Das betreffend gesperrte Verzeichnis wird in der Liste des übergeordneten Verzeichnisses erst gar nicht angezeigt.