Title: Benutzer-Webverzeichnisse
Bei Mehrbenutzersystemen kann jedem Benutzer gestattet werden, mit der
http://example.com/~username/ erhalten den Inhalt des
Benutzers "username" aus dessen mit der
Die
Wird ein Pfad angegeben, der nicht mit einem Schrägstrich beginnt, wird angenommen, dass es sich um einen Verzeichnispfad relativ zum Stammverzeichnis des angegebenen Benutzers handelt. Ein Beispiel:
Die URL http://example.com/~rbowen/file.html wird in den
Dateipfad /home/rbowen/public_html/file.html umgewandelt.
Beginnt der Pfad mit einem Schrägstrich, wird mit diesem Pfad ein Verzeichnispfad mit dem angegebenen Benutzernamen konstruiert:
Die URL http://example.com/~rbowen/file.html wird in den
Dateipfad /var/html/rbowen/file.html umgewandelt.
Wird ein Pfad mit einem Sternchen angegeben (*), wird
ein Pfad benutzt, in dem das Sternchen durch den Benutzernamen ersetzt wird:
Die URL http://example.com/~rbowen/file.html wird in den
Dateipfad /var/www/rbowen/docs/file.html umgewandelt.
Die Syntax der UserDir-Anweisung erlaubt eine Einschränkung
der Benutzer dieser Funktionalität:
UserDir disabled root jro fish
Bei dieser Konfiguration dürfen alle Benutzer bis auf diejenigen, die in der
disabled-Anweisung aufgeführt werden, diese Eigenschaft
benutzen. Genauso gut kann die Eigenschaft für alle Benutzer bis auf einige wenige
deaktiviert werden:
UserDir enabled rbowen krietz
Weitere Beispiele finden Sie unter
Damit jeder Benutzer sein eigenes cgi-bin-Verzeichnis erhält,
können Sie mit einer
Options ExecCGI
SetHandler cgi-script
</Directory>
Soll den Benutzern gestattet werden, die Serverkonfiguration für
Ihren Webbereich zu verändern, dann müssen Sie hierfür die
.htaccess-Dateien benutzen. Achten Sie darauf, dass
In den .htaccess-Dateien können Konfigurationsänderungen
auf Verzeichnisebene durchgeführt werden.
.htaccess-Dateien (oder "verteilte Konfigurationsdateien")
bieten die Möglichkeit, Konfigurationsänderungen auf der Ebene von Verzeichnissen
durchzuführen. Wird eine Datei mit einer oder mehreren Konfigurationsdirektiven
in einem bestimmten Dokumentverzeichnis platziert, werden die Direktiven
für dieses Verzeichnis und alle enthaltenen Unterverzeichnisse angewendet.
Möchten Sie der .htaccess-Datei einen anderen Namen geben,
dann können Sie dies mit der
.config heißen, setzen Sie folgende Zeile in
die Serverkonfigurationsdatei:
Was Sie in diese Dateien einfügen dürfen, wird mit der .htaccess-Datei stehen. Ist eine Direktive in einer
.htaccess-Datei zulässig, dann gibt die Dokumentation dieser
Direktive unter AllowOverride an, welcher Wert für
Wenn Sie beispielsweise unter .htaccess-Dateien zulässig ist (in der Kontextzeile der
Zusammenfassung ). Unter
AllowOverride wird FileInfo angegeben. Dementsprechend
muss mindestens AllowOverride FileInfo angegeben werden, damit
die Anweisung aus .htaccess-Dateien berücksichtigt wird.
| Kontext: | server config, virtual host, directory, .htaccess |
| AllowOverride: | FileInfo |
Wenn Sie sich nicht sicher sind, ob eine bestimmte Direktive in einer
.htaccess-Datei zulässig ist, dann schauen Sie in der
Dokumentation nach, ob dort der Eintrag ".htaccess" für Kontext steht.
Im Allgemeinen sollten Sie .htaccess-Dateien nur dann
benutzen, wenn Sie keinen Zugriff auf die Konfigurationsdatei des Hauptservers
haben. Es ist zum Beispiel ein weit verbreitetes Missverständnis, das die
Benutzerauthentifizierung immer über die .htaccess-Dateien
konfiguriert werden sollte. Das ist falsch. Sie können die Authentifizierung
in der Konfigurationsdatei des Hauptservers festlegen, was auch zu empfohlen
wird.
.htaccess-Dateien sollten benutzt werden, wenn die Anbieter
des Inhalts auf Verzeichnisebene Konfigurationsänderungen für den Server
vornehmen müssen, aber nicht die entsprechenden Rechte für den Server besitzen.
Ist der Administrator nicht gewillt, häufige Konfigurationsänderungen
vorzunehmen, kann es angebracht sein, dass einzelne Benutzer diese
Änderungen mit den .htaccess-Dateien selbst durchführen. Das trifft
insbesondere dann zu, wenn Provider mehrere Benutzer-Sites auf einem
Rechner beherbergen und möchten, dass die Benutzer die Änderungen selbst
durchführen können.
Generell sollte die Verwendung von .htaccess-Dateien jedoch
möglichst vermieden werden. Jede Konfiguration, die Sie in einer
.htaccess-Datei vornehmen, kann genauso gut in einem
Die Verwendung von .htaccess-Dateien sollte aus zwei
wichtigen Gründen vermieden werden.
Der erste ist der Serverdurchsatz. Wenn .htaccess-Dateien
benutzt werden dürfen, dann schaut der Apache in jedem Verzeichnis nach
.htaccess-Dateien, was die Leistung herabsetzt, selbst wenn
die Dateien nicht benutzt werden. Außerdem wird die
.htaccess-Datei
jedes Mal geladen, wenn ein Dokument angefordert wird.
Beachten Sie außerdem, dass der Apache in allen Verzeichnissen höherer
Ebenen nach .htaccess-Dateien suchen muss, damit er den
Überblick hat, welche Direktiven er anwenden muss. (Siehe auch
Wie Direktiven angewendet werden.) Wird eine Datei aus
dem Verzeichnis /www/htdocs/example angefordert, muss der
Apache daher nach folgenden Dateien suchen:
/www/.htaccess
/www/htdocs/.htaccess
/www/htdocs/example/.htaccess
Für jeden Dateizugriff in diesem Verzeichnis sind also 4 weiter Zugriffe auf das
Dateisystem erforderlich, auch dann wenn keine dieser Dateien vorhanden ist.
(Das trifft nur zu, wenn die Verwendung von
.htaccess-Dateien für / zugelassen wird, was
normalerweise nicht der Fall ist.)
Das zweite Argument betrifft die Sicherheit. Wenn Sie es zulassen, dass
Benutzer die Serverkonfiguration ändern, können Änderungen vorgenommen
werden, über die Sie keine Kontrolle mehr haben. Deshalb sollten Sie genau
überlegen, ob Sie den Benutzern dieses Privileg einräumen. Bedenken Sie
aber auch, dass Benutzer, die mit weniger Rechten ausgestattet sind, als
sie benötigen, mehr Support in Anspruch nehmen werden. Sorgen Sie dafür, dass
die Benutzer wissen, welche Rechte sie haben. Wenn Sie genau angeben,
wie
Bedenken Sie, dass es genau die gleichen Auswirkungen hat, wenn Sie
eine .htaccess-Datei in das Verzeichnis
/www/htdocs/example stellen oder die darin enthaltenen Direktiven
in den <Directory /www/htdocs/example>-Abschnitt
der Konfigurationsdatei des Hauptservers setzen:
Die .htaccess-Datei aus dem Verzeichnis
/www/htdocs/example:
/www/htdocs/examplehttpd.conf-DateiWird diese Konfiguration in der Serverkonfigurationsdatei vorgenommen, gibt es keine Leistungsverschlechterung, da die Konfiguration einmal beim Start des Apache geladen wird und nicht jedes Mal, wenn eine Datei angefordert wird.
Wenn die none gesetzt wird, sind die .htaccess-Dateien
vollständig deaktiviert:
Die Konfigurationsdirektiven aus einer .htaccess-Datei
werden auf das Verzeichnis und alle seine Unterverzeichnisse angewendet,
in welchem sich die .htaccess-Datei befindet. Dabei ist aber zu
beachten, dass sich in den darüber liegenden Verzeichnissen auch
.htaccess-Dateien befinden können. Direktiven werden in der
Reihenfolge angewendet, in der sie gefunden werden. Daher ist es möglich,
dass .htaccess-Datei aus einem bestimmten Verzeichnis
Direktiven aus .htaccess-Dateien aus darüber liegenden
Verzeichnissen überschreiben können, die ihrerseits Direktiven aus noch
weiter darüber liegenden Verzeichnissen überschreiben. Ferner können
Direktiven aus der Konfigurationsdatei des Servers überschrieben werden.
Beispiel:
Im Verzeichnis /www/htdocs/example1 befindet sich eine
.htaccess-Datei mit folgender Anweisung:
(Hinweis: Die Option AllowOverride Options muss aktiv sein,
damit die .htaccess-Dateien benutzt werden darf.)
Im Verzeichnis /www/htdocs/example1/example2 befindet
sich eine .htaccess-Datei mit folgendem Inhalt:
Da sich die zweite .htaccess-Datei im Verzeichnis
/www/htdocs/example1/example2 befindet, ist die
CGI-Ausführung nicht erlaubt, da nur Options Includes gesetzt
wurde, womit alle vorherigen Direktiven vollständig überschrieben werden.
Wenn Sie bei der Suche nach einem Beispiel für die Authentifizierung direkt
auf diese Textstelle gestoßen sind, dann seien Sie hier noch einmal auf das
weit verbreitete Missverständnis hingewiesen, dass .htaccess-Dateien
für die Implementierung der Passwortauthentifizierung benötigt werden. Das trifft
nicht zu. Es wird empfohlen, die Authentifizierungsdirektiven in einen
.htaccess-Dateien
sollten nur verwendet werden, wenn kein Zugriff auf die Konfigurationsdatei des
Servers möglich ist. In den vorangegangenen Abschnitten
wurde bereits erläutert, wann .htaccess-Dateien benutzt werden
sollten.
Wenn Sie vor diesem Hintergrund trotzdem der Meinung sind, Sie müssten
eine .htaccess-Datei verwenden, dann hilft Ihnen vielleicht das
folgende Beispiel weiter.
Inhalt der .htaccess-Datei:
AuthName "Password Required"
AuthUserFile /www/passwords/password.file
AuthGroupFile /www/passwords/group.file
Require Group admins
AllowOverride AuthConfig muss gesetzt sein, damit diese
Direktiven wirksam sind.
Die Authentifizierung und Autorisierung werden in der Anleitung Authentifizierung, Autorisierung und Zugriffskontrolle ausführlich behandelt.
.htaccess-Dateien werden häufig für die Aktivierung von
Server-Side Includes für ein bestimmtes Verzeichnis benutzt. Dies kann mit
folgenden Direktiven in der .htaccess-Datei des gewünschten
Verzeichnisses geschehen:
AddType text/html shtml
AddHandler server-parsed shtml
AllowOverride FileInfo muss gesetzt sein, damit diese
Direktiven wirksam sind.
Server-Side Includes werden in der Einleitung Server-Side Includes ausführlich behandelt.
Mit einer .htaccess-Datei kann die Ausführung von
CGI-Programmen aus einem bestimmten Verzeichnis zugelassen werden. Dies kann
mit folgenden Direktiven konfiguriert werden:
AddHandler cgi-script cgi pl
Sollen alle Dateien aus dem angegebenen Verzeichnis als CGI-Programme betrachtet werden, kann dies wie folgt konfiguriert werden:
SetHandler cgi-script
AllowOverride Options muss gesetzt sein, damit diese
Direktiven wirksam sind.
Die CGI-Programmierung und Konfiguration wird in der Anleitung Dynamische Inhalte mit CGI ausführlich behandelt.
Wenn die Konfigurationsdirektiven aus einer
.htaccess-Datei nicht zum gewünschten Ergebnis führen, kann das
viele Ursachen haben.
Häufig wird wurde vergessen, AllowOverride None-Anweisung
für den Dateibereich gesetzt wird. Das lässt sich einfach dadurch testen,
dass unsinnige Anweisungen in die .htaccess-Datei eingefügt werden
und neu geladen wird. Wird vom Server kein Fehler gemeldet, ist
höchstwahrscheinlich AllowOverride None gesetzt worden.
Meldet der Server dagegen beim Versuch auf Dokumente zuzugreifen Fehler,
dann überprüfen Sie das Apache-Fehlerprotokoll. Dort wird Ihnen wahrscheinlich
mitgeteilt, dass die in der .htaccess-Datei benutzte Direktive
nicht zulässig ist oder dass ein Syntaxfehler vorliegt, den Sie beheben müssen.
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
