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 BasicAls Nächstes erstellen wir eine Datei mit Passwörtern, deren Pfad als Parameter für die Direktive AuthUserFile angegeben wird.
AuthName "Access is Denied. Enter password"
AuthUserFile /path_to_file/.passwords
<Limit GET POST>
Require valid-user
</Limit>
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 user3Die Direktive require verwenden wir dann entsprechend so:
group2: user2 user4
group3: user1 user3
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>
