Wie verwendet oder erlaubt Apache das Durchsuchen von / usr / share? (Linux / Ubuntu)

7

Die Standard-Datei apache.conf (Ubuntu-Server) enthält den folgenden Block:

# Sets the default security model of the Apache2 HTTPD server. It does
# not allow access to the root filesystem outside of /usr/share and /var/www.
# The former is used by web applications packaged in Debian,
# the latter may be used for local directories served by the web server. If
# your system is serving content from a sub-directory in /srv you must allow
# access here, or in any related virtual host.

# .... other items removed for brevity    

<Directory /usr/share>
        AllowOverride None
        Require all granted
</Directory>

Meine Interpretation dieser Direktive ist, dass Apache das Surfen der Elemente im /usr/shareOrdner im Internet ermöglicht . Noch Wenn ich versuche zu suchen und Artikel in /usr/share/Ich kann nichts anzeigen?

  1. Wie durchsuche ich den Inhalt in / usr / share?

    Wenn ich z. B. einen Browser auf localhost/synaptic/html/index.htmlzeige, wird der Fehler 404 nicht gefunden angezeigt

  2. Wenn Apache das Durchsuchen dieses Verzeichnisses erlaubt - muss ich es auf einem Produktionsserver sperren?

Michael Coleman
quelle

Antworten:

4
  1. Sie müssen / usr / share einen URL-Pfad zuordnen. Der einfachste Weg, dies zu tun, ist die Verwendung einer Alias-Direktive, zum Beispiel:

    Alias /share /usr/share
    

    Dann http://localhost/share/synapticwird zu zugeordnet /usr/share/synaptic. Siehe die Dokumentation zu Alias .

  2. Alle Dateien in / usr / share sollten für Nicht-Root-Benutzer, einschließlich des Apache-Benutzers www-data, bereits nicht beschreibbar sein. Sie sind wahrscheinlich auch alle weltlesbar. Es sollte also in Ordnung sein, sie alle wie oben ohne zusätzliche Einschränkungen zu bedienen. Wenn sich jedoch in / usr / share öffentliche Dateien befinden, die Apache-Benutzer nicht sehen sollen, können Sie mithilfe von Require all denyAnweisungen den Zugriff auf diese Dateien blockieren.

Andrew Schulman
quelle
funktioniert perfekt! Der schwierige Teil bestand darin, herauszufinden, welche Konfigurationsdatei / Abschnitt / Container die Alias /share /usr/shareZeile einfügen soll . Ich habe es in die Standarddatei für virtuelle Hosts eingefügt, innerhalb des <virtualHost: *.80/>Blocks und vor dem <Directory "/var/www/html">Container, danke! (noch nicht in der Lage zu stimmen - nicht genug Wiederholung)
Michael Coleman