Htaccess files

Aus A-Enterprise

Wechseln zu: Navigation, Suche

Mit der .htaccess Datei wird die Möglichkeit gegeben einzelne Verzeichnisse auf einem Webserver mit einem Passwort vor unberechtigtem Zugriff zu schützen.

Nahezu jede Direktive kann mittels der .htaccess-Datei "überschrieben" werden.

Es soll ein bestimmter Bereich der Website nur Auserwählten zugänglich gemacht werden. Folgendes sollte also in der .htaccess stehen:

AuthType Basic
AuthName LOGIN
AuthUserFile Pfad zur Passwortdatei
require valid-user

Beispiel .htaccess-Datei wie sie in den meisten fällen genügt, es soll der Index mit allen Seiten im Verzeichnis /var/www/html geschützt werden, hier die .htaccess-Datei erstellen:

AuthType Basic
AuthName Administration
AuthUserFile /home/barth/.htpasswd
require valid-user

Um die Authentifizierungsdirektiven in der ".htaccess" Datei nutzen zu können, müssen wir eine Datei anlegen, in der die Namen und Passwörter der Benutzer eingetragen werden.

Hierfür benutzen wir den von Apache mitgelieferte Befehl "htpasswd"

~# htpasswd -c \home\barth\.htpasswd barth

Das Programm fragt nun nach einem Passwort, welches zweimal eingegeben werden muss.

Problemlösungen:

Darauf achten ob die Apache direktiven gesetzt sind!

AllowOverride All|None|directive-type [directive-type] ...

!! wurde AllowOverride None gesetzt, wird .htaccess nicht abgearbeitet.


Folgende Apache2 direktiven sollten vorhanden sein:

Empfohlene Einstellungen, bei Debian in der Datei /etc/apache2/apache2.conf Bei Fedora und redhat ist dies die Datei /etc/httpd/conf/httpd.conf

AccessFileName .htaccess

<Files ~ "^\.ht">
   Order allow,deny
   Deny from all
</Files>

<Directory /var/www/html>
   AllowOverride All
</Directory> 

Benutzer auf stdout ausgeben: htpasswd -n barth, oder einfach, cat \home\barth\.htpasswd

!! POSIX/UNIX-konforme Betriebssysteme verwenden am anfang einen Punkt (.) als Datei-Attribut um Dateien zu schützen und unsichtbar zu machen, (hidden flag).

Ausgrenzung:

Möchte man ein bestimmtes Unterverzeichnis wieder ohne Authentifizierung haben, gilt folgende Direktive in der .htaccess-Datei.

AuthUserFile /home/barth/.htpasswd
AuthName LOGIN
AuthType Basic

<Limit GET>
   require valid-user
   Order deny,allow
   Allow from localhost
   Deny from all
   Satisfy any
</Limit>

Anwendung:

htpasswd [-cmdpsD] passwordfile username
htpasswd -b[cmdpsD] passwordfile username password
htpasswd -n[mdps] username
htpasswd -nb[mdps] username password
-c 	Neue Datei erstellen
-n 	Datei nicht updaten (Unter UNIX Ergebnisse an stdout senden)
-m 	MD5 Verschlüsselung verwenden
-d 	CRYPT Verschlüsselung verwenden (default)
-p 	Passwort nicht verschlüsseln (plaintext)
-s 	SHA Verschlüsselung verwenden
-b 	Passwort von der Kommandozeile übernehmen
-D	Delete the specified user
Persönliche Werkzeuge