Directory Listing
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.