Programme htpasswd - Dateien für die Basic-Authentifizierung verwalten

Mit dem Programm htpasswd werden Textdateien mit Benutzernamen und Passwörtern für die Basic-Authentifizierung der HTTP-Benutzer verwaltet. Kann das Programm auf eine Datei nicht zugreifen, sei es um seine Ausgaben in die Datei zuschreiben oder in ihr zu lesen, wird ein Fehlerstatus zurückgegeben und keine Änderung durchgeführt.

Der Zugriff auf die Ressourcen des Apache HTTP-Servers kann auf die Benutzer beschränkt werden, die in den mit htpasswd angelegten Dateien aufgeführt werden. Das Programm selbst kann nur einfache Textdateien verwalten, es kann jedoch Passwortinformationen für andere Formen der Speicherung verschlüsseln und anzeigen. Informationen zum Einsatz von DBM-Datenbanken finden Sie in der Dokumentation des Programms dbmmanage.

htpasswd verschlüsselt Passwörter entweder mit einer Apache-Version des MD5-Algorithmus oder mit Hilfe der eigenen crypt()-Routine. Die mit htpasswd verwalteten Dateien können nach beiden Verfahren verschlüsselte Passwörter enthalten.

In dieser Dokumentation werden nur die Befehlszeilenargumente beschrieben. Einzelheiten zu den Direktiven für die Konfiguration der Benutzerauthentifizierung finden Sie im Apache-Handbuch httpd, das Bestandteil der Apache-Distribution ist oder unter http://httpd.apache.org/ zu finden ist.

httpd Die Skripte für Support/SHA1 der Distribution.
Synopsis

htpasswd [ -c ] [ -m ] [ -D ] Passwortdatei Benutzername

htpasswd -b [ -c ] [ -m | -d | -p | -s ] [ -D ] Passwortdatei Benutzername Passwort

htpasswd -n [ -m | -d | -s | -p ] Benutzername

htpasswd -nb [ -m | -d | -s | -p ] Benutzername Passwort

Optionen
-b
Eingabe des Passwort in der Befehlszeile und nicht über eine Eingabeaufforderung. Diese Option sollte äußerst vorsichtig benutzt werden, weil das Passwort sichtbar ist.
-c
Mit dieser Option wird die Passwortdatei erzeugt. Ist sie bereits vorhanden, wird sie überschrieben. Diese Option kann nicht mit der Option -n kombiniert werden.
-n
Die Ergebnisse werden über die Standardausgabe angezeigt und nicht in die Passwortdatei geschrieben. Diese Option kann genutzt werden, um vom Apache akzeptierte Passwortdatensätze zu erzeugen, die nicht in Textform gespeichert werden. Die Syntax der Befehlszeile ändert sich bei dieser Option, weil das Argument Passwortdatei (normalerweise das erste Argument) weggelassen wird. Sie kann nicht mit der Option -c kombiniert werden.
-m
Es wird die MD5-Verschlüsselung für Passwörter benutzt. Unter Windows, Netware und TPF entspricht das der Voreinstellung.
-d
Für die Verschlüsselung der Passwörter wird die crypt()-Routine benutzt, was der Vorgabe für alle Betriebssysteme bis auf Windows, Netware und TPF entspricht. Andere Betriebssystem können diese Option für htpasswd auch unterstützen, für den httpd-Server unter Windows, Netware und TPF gilt dies jedoch nicht.
-s
Die Passwörter werden mit dem SHA-Algorithmus verschlüsselt. Diese Option ist für die Migration von/zu Netscape-Servern gedacht, die das LDAP Directory Interchange Format (ldif) verwenden.
-p
Die Passwörter werden im Textformat gespeichert. Diese Option wird zwar unter allen Betriebssystemen von htpasswd unterstützt, der httpd-Daemon akzeptiert Passwörter im Textformat aber nur unter Windows, Netware und TPF.
-D
Ist der angegebene Benutzername in der Passwortdatei vorhanden, wird er gelöscht.
Passwortdatei
Bezeichnung der Datei, die die Benutzernamen und Passwörter enthält. Wird -c angegeben, wird diese Datei erzeugt, falls sie nicht vorhanden ist. Ist sie vorhanden, wird sie vollständig überschrieben.
Benutzername
Der anzulegende oder zu aktualisierende Benutzername aus der Passwortdatei. Ist der Benutzername in dieser Datei nicht vorhanden, wird ein Eintrag hinzugefügt. Ist er vorhanden, wird das Passwort geändert.
Passwort
Das zu verschlüsselnde und in der Datei zu speichernde Passwort. Wird nur in Kombination mit der Option -b benutzt.
Rückgabewerte

Das Programm htpasswd liefert den Status null ("true") zurück, wenn Benutzername und Passwort in der Passwortdatei erfolgreich hinzugefügt oder aktualisiert wurden. 1 wird zurückgegeben, wenn beim Zugriff auf Dateien ein Fehler aufgetreten ist, 2, wenn ein Syntaxfehler in der Befehlszeile vorliegt, 3, wenn das Passwort im Dialog eingegeben wurde und nicht verifiziert werden konnte, 4, wenn die Operation unterbrochen wurde, 5, wenn ein Wert zu lang ist (Benutzername, Dateiname, Passwort oder die zuletzt berechnete Zeile), 6, wenn der Benutzername unzulässige Zeichen enthält (siehe im Abschnitt Einschränkungen) und 7, wenn es sich nicht um eine Passwortdatei handelt.

Beispiele htpasswd /usr/local/etc/apache/.htpasswd-users jsmith

Das Passwort für den Benutzer jsmith wird hinzugefügt oder geändert. Der Benutzer wird mit einem Dialogfeld nach dem Passwort gefragt. Unter Windows wird das Passwort mit dem modifizierten MD5-Algorithmus des Apache verschlüsselt, sonst wird die Systemroutine crypt() verwendet. Ist die Datei nicht vorhanden, führt htpasswd keine Operationen durch und liefert nur einen Fehler zurück.

htpasswd -c /home/doe/public_html/.htpasswd jane

Es wird eine neue Datei erzeugt und ein Datensatz für den Benutzer jane angelegt. Der Benutzer wird nach dem Passwort gefragt. Ist die Datei vorhanden, aber darf nicht in die Datei geschrieben oder aus ihr gelesen werden, werden keine Änderungen vorgenommen, eine Meldung angezeigt und der Fehlerstatus zurückgeliefert.

htpasswd -mb /usr/web/.htpasswd-all jones Pwd4Steve

Das Passwort aus der Befehlszeile (Pwd4Steve) wird mit dem MD5-Algorithmus verschlüsselt und in der angegebenen Datei gespeichert.

Sicherheitsüberlegungen

Web-Passwortdateien wie die von htpasswd verwalteten Dateien sollten nicht im URI-Raum des Web-Servers gespeichert werden, d.h. sie sollten für Browser unzugänglich sein.

Die Verwendung der Option -b ist nicht zu empfehlen, weil ein nicht verschlüsseltes Passwort in der Befehlszeile angezeigt wird.

Einschränkungen

Unter Windows und MPE-Betriebssystemen dürfen mit htpasswd verschlüsselte Passwörter nicht länger als 255 Zeichen sein. Längere Passwörter werden auf 255 Zeichen verkürzt.

Der von htpasswd verwendete MD5-Algorithmus ist eine eigene Variante der Apache-Software. Passwörter die mit ihm verschlüsselt wurden, können nicht in Verbindung mit anderen Web-Servern benutzt werden.

Benutzernamen sind auf 255 Bytes beschränkt und dürfen keine Doppelpunkte : enthalten.