Crmgo Blog

Verwendung von .htaccess- und .htpasswd-Dateien

Verwendung von .htaccess- und .htpasswd-Dateien

Um das Passwort für den Zugriff auf bestimmte Seiten oder Bereiche Ihrer Website zu setzen. Zuerst erstellen wir in dem entsprechenden Unterverzeichnis eine Datei namens .htaccess und fügen Folgendes ein: AuthType Basic AuthName "Zugriff verweigert. Passwort eingeben" AuthUserFile /pfad_zur_datei/.passwords <Limit GET POST> Require valid-user…

Verwendung von .htaccess- und .htpasswd-Dateien

um ein Passwort für den Zugriff auf bestimmte Seiten oder Bereiche Ihrer Website zu setzen.
Zuerst erstellen wir in dem gewünschten Unterverzeichnis eine Datei .htaccess, in die wir Folgendes schreiben:
AuthType Basic
AuthName "Access is Denied. Enter password"
AuthUserFile /path_to_file/.passwords
<Limit GET POST>
Require valid-user
</Limit>
Als Nächstes erstellen wir eine Datei mit Passwörtern, deren Pfad als Parameter für die Direktive AuthUserFile angegeben wird.
Die Passwörter in dieser Datei müssen verschlüsselt sein, was mit dem Programm htpasswd erreicht werden kann, das im Lieferumfang von Apache enthalten ist.

Detaillierte Informationen zur Verwendung finden Sie in der Manual Page: htpasswd oder in der Manpage, indem Sie htpasswd einfach in der Unix-Shell ausführen:
$ htpasswd
Usage:
htpasswd [-cmdpsD] passwordfile username
htpasswd -b[cmdpsD] passwordfile username passwordhtpasswd -n[mdps] username
htpasswd -nb[mdps] username password
-c Create a new file.
-n Don't update file; display results on stdout.
-m Force MD5 encryption of the password.
-d Force CRYPT encryption of the password (default).
-p Do not encrypt the password (plaintext).
-s Force SHA encryption of the password.
-b Use the password from the command line rather than prompting for it.
.....

Da wir noch keine Passwortdatei haben, müssen wir diese nun erstellen:
$ htpasswd -c .passwords test
New password:
Re-type new password:
Adding password for user test

Danach wird die Datei .passwords erstellt, die den Benutzer test und sein verschlüsseltes Passwort enthält:
$ cat .passwords
test:WE.MwmyNsIG76

Nun möchten wir einen weiteren Benutzer hinzufügen. Da die Passwortdatei bereits existiert, verwenden wir den Schalter ‘-c’ nicht:
$ htpasswd .passwords test1
New password:
Re-type new password:
Adding password for user test1
$ cat .passwords
test:WE.MwmyNsIG76
test1:Eeg7zFPfq32BM

Als Parameter für die Direktive require haben wir valid-user angegeben. Das bedeutet, dass jeder Benutzer, der in der verwendeten Passwortdatei enthalten ist, Zugriff auf die geschützte Ressource erhalten kann. Allerdings ist es praktischer, alle Passwörter in einer einzigen Datei zu speichern und den Zugriff auf bestimmte Ressourcen nur bestimmten Benutzern zu gewähren.
Im folgenden Beispiel gewähren wir den Zugriff nur dem Benutzer test:

AuthType Basic
AuthName "Access is Denied. Enter password"
AuthUserFile /path_to_file/.passwords
<Limit GET POST>
Require user test
</Limit>

Man kann Benutzer auch in Gruppen zusammenfassen und den Zugriff nicht einzelnen Benutzern, sondern Gruppen gewähren.
Dies kann mit der Direktive AuthGroupFile erreicht werden:

AuthGroupFile /pfad_zur_datei/groups

In der Datei groups erstellen wir Gruppen etwa wie folgt:
group1: user1 user3
group2: user2 user4
group3: user1 user3
Die Direktive require verwenden wir dann entsprechend so:

AuthType Basic
AuthName "Access is Denied. Enter password"
AuthGroupFile /path_to_file/groups
AuthUserFile /path_to_file/.passwords
<Limit GET POST>
Require user test
Require group group1
</Limit>

Hinweis: Dieser Beitrag kann KI-unterstützt erstellt und anschließend redaktionell geprüft worden sein. Verantwortlich: Dmytro Lomaka, Kaltenkirchen.