buecher.lingoworld.de
sascha kersken

buecher.lingoworld - Startseite

    buchinfo

    aktuelles

    newsletter

    inhalt

    leseprobe

    rezensionen

    direktiven

    module

    errata

    forum

    buchtipps

    links



    bestellen bei:

    Galileo Press
    amazon.de





Module
 
Galileo Computing 
Energy Brain Comics

mod_auth_dbm

Referenz der mod_auth_dbm-Direktiven

Wenn Sie sehr viele Benutzerdaten verwalten müssen, wird die Speicherung in Textdateien sehr schnell ineffizient – im schlimmsten Fall muss Apache die gesamte Datei durchgehen, um schließlich festzustellen, dass der angegebene Benutzername gar nicht existiert. Erheblich effizienter funktioniert die Verwaltung der Daten in DBM-Dateien: Da es sich um indizierte, datenbankähnliche Dateien handelt, kann das zuständige Modul mod_auth_dbm die Benutzerdaten sofort nachschlagen.

Beachten Sie, dass das Modul in Apache 2.0 nur Basic-Authentifizierung bereitstellt. In der kommenden Apache-Version 2.2 (zurzeit 2.1-beta) gibt es statt dessen das neue Modul mod_authn_dbm als DBM-Provider für die beiden Authentifizierungs-Grundmodule mod_auth_basic und mod_auth_digest. Es gibt unterschiedliche konkrete Typen von DBM-Dateien wie SDBM, GDBM und NDBM. Welche Typen auf Ihrem System zur Verfügung stehen, hängt davon ab, wie Ihr Apache kompiliert wurde – die entsprechenden Optionen werden im Buch »Apache 2« in Kapitel 4, Apache kompilieren und installieren, erläutert. Allgemein handelt es sich um eine Reihe von configure-Parametern, die --with-sdbm, --with-gdbm und so weiter lauten.

Das Tool dbmmanage

Zur Erstellung von DBM-Benutzerdateien wird mit Apache ein Perl-Skript namens dbmmanage geliefert. Ähnlich wie htpasswd oder htdigest ermöglicht es die einfache Verwaltung der Benutzerdaten. Unter UNIX ist es als ausführbar gekennzeichnet und kann einfach mit seinem Namen aufgerufen werden. Auf Windows-Systemen wird es dagegen mit perl dbmmanage.pl ausgeführt. Selbstverständlich muss auf beiden Systemen Perl installiert sein. Das Skript benötigt das Perl-Modul Crypt::PasswdMD5, das zumindest unter Windows nicht zum Lieferumfang von Perl gehört. Wenn Sie ActivePerl für Windows verwenden und eine direkte Internetverbindung besteht, lässt es sich einfach folgendermaßen herunterladen und installieren:

   > ppm install Crypt::PasswdMD5

Bei anderen Perl-Versionen oder auf Nicht-Windows-Systemen müssen Sie das Modul möglicherweise selbst aus dem CPAN herunterladen und manuell installieren.

Das Skript dbmmanage kann mit einer der folgenden drei Syntaxvarianten aufgerufen werden:

   # dbmmanage [Codierung] Dateiname \
   add|adduser|check|delete|update Username [Passwort [Gruppe[,Gruppe...] [Kommentar]]]

   # dbmmanage Dateiname view [Username]
   # dbmmanage Dateiname import

Die Befehle der ersten Variante (add, adduser und so weiter) führen jeweils eine Änderung an einem Datensatz der DBM-Datei durch. Mit Hilfe des Befehls view können Sie den Inhalt der angegebenen Datei betrachten. import ermöglicht das Einlesen von Benutzerdaten über die Standardeingabe.

Im Einzelnen bedeuten die verschiedenen Parameter Folgendes:

Dateiname
Der Basisdateiname der DBM-Datei – in der Regel ohne Dateiendung, da diese je nach konkreter DBM-Variante anders lauten kann.
Username
Der Benutzer, auf den sich der Befehl bezieht.
Passwort
Wenn Sie in der Kommandozeile ein Passwort eingeben, muss es bereits mit einem externen Hilfsprogramm verschlüsselt worden sein. Andernfalls können Sie ein Minuszeichen (-) angeben, um separat nach dem Passwort gefragt zu werden. Zusammen mit dem Befehl update kann auch ein Punkt (.) verwendet werden, um das ursprüngliche Passwort beizubehalten.
Gruppe
Sie können eine oder (durch Komma ohne Leerzeichen getrennt) mehrere Gruppen angeben, denen der User angehören soll. Wenn der Benutzer keiner speziellen Gruppe angehören soll, Sie aber dennoch das nächste Feld (Kommentar) ausfüllen möchten, müssen Sie hier den Wert - verwenden. Beim update-Befehl können Sie einen Punkt (.) benutzen, wenn Sie die Gruppenzugehörigkeit nicht ändern möchten.
Kommentar
Zu Ihrer eigenen Information können Sie an dieser Stelle einen beliebigen Kommentar über den User angeben – zum Beispiel den Realnamen oder die E-Mail-Adresse.

Für die Codierung, das heißt die Verschlüsselungsart, können Sie folgende Werte angeben:

-d
crypt-Verschlüsselung (Standard auf UNIX-Systemen)
-m
MD5-Verschlüsselung (Standard auf Windows- und NetWare-Systemen)
-s
SHA1-Verschlüsselung
-p
Klartext (nicht zu empfehlen)

Genau wie bei htpasswd empfiehlt sich aus Gründen der einfachen Übertragbarkeit auf andere Betriebssysteme das MD5-Format.

Die einzelnen Befehle bedeuten Folgendes:

add
Ein neuer Eintrag für den angegeben User wird erzeugt; dazu wird das bereits verschlüsselte Passwort aus der Kommandozeile benutzt.
adduser
Auch dieser Befehl fügt einen Datensatz für einen neuen Benutzer hinzu. Im Unterschied zu add werden Sie aber nach dem Passwort gefragt.
check
Sie werden nach dem Passwort gefragt. Anschließend überprüft der Befehl, ob der angegebene User existiert und ob das Passwort korrekt ist.
delete
Dieser Befehl löscht den angegebenen Benutzer aus der DBM-Datei.
import
Dieser Befehl liest beliebig viele Benutzername:Passwort-Paare aus der Standardeingabe. Die Passwörter müssen bereits verschlüsselt sein. Der eigentliche Zweck dieses Befehls ist allerdings nicht etwa die manuelle Eingabe, sondern der Import von Daten aus einer bestehenden htpasswd-Textdatei nach folgendem Schema:

# dbmmanage /usr/local/apache2/misc/.htdb </usr/local/apache2/misc/.htusers
update
Dieser Befehl ändert die Daten für einen bereits bestehenden Benutzer. Existiert noch kein Eintrag für den Benutzer, wird das Kommando nicht ausgeführt.
view
Mit diesem Befehl können Sie sich den Inhalt der DBM-Datei anzeigen lassen. Optional können Sie einen Usernamen angeben, um nur einen Datensatz zu sehen.

Das folgende Beispiel verwendet eine Datei namens .htdb. Zuerst werden die beiden Benutzer webadmin und webuser mit MD5-verschlüsselten Passwörtern (Option -m) erzeugt, anschließend wird mit dem Befehl view das Ergebnis angezeigt:

   # dbmmanage -m .htdb adduser webadmin
   New password:IchDarf
   Re-type new password:IchDarf

   User webadmin added with password encrypted to
   $apr1$4J3Y1DEP$xstTFQOqnVu.ZWhM5FSyg. using md5

   # dbmmanage -m .htdb adduser webuser    New password:IchDarfAuch
   Re-type new password:IchDarfAuch

   User webuser added with password encrypted to
   $apr1$5Se7H29v$AsOmsq5OM4aMM2.3YrGWK1 using md5

   # dbmmanage .htdb view
   webadmin:$apr1$4J3Y1DEP$xstTFQOqnVu.ZWhM5FSyg.
   webuser:$apr1$5Se7H29v$AsOmsq5OM4aMM2.3YrGWK1

Beachten Sie, dass Sie das Programm unbeobachtet verwenden sollten – da ein Perl-Skript nicht ohne Weiteres auf erweiterte Terminal-Funktionalität zugreifen kann, ist die Passworteingabe hier sichtbar.

Das Programm htdbm

Eine modernere Alternative zu dbmmanage ist das bei mit neueren Apache-Versionen mitgelieferte Hilfsprogramm htdbm. Im Gegensatz zu diesem ist es kein Perl-Skript, sondern ein Binary.

Das Programm wird mit folgender Grundsyntax aufgerufen:

   # htdbm [Optionen] Datei [Benutzername [Passwort]]

Folgende Optionen sind definiert:

-b
Passwort von der Kommandozeile lesen, statt danach zu fragen.
-c
Mit dieser Option wird eine neue Datenbank angelegt beziehungsweise eine bestehende ersetzt.
-n
Diese Option bestimmt, dass der Befehl nur zu Testzwecken ausgeführt wird: Die Datenbank selbst wird nicht geändert; das Ergebnis wird lediglich angezeigt.
-m
MD5-Verschlüsselung verwenden (Standard unter Windows und NetWare).
-p
Das Passwort soll im Klartext gespeichert und nicht verschlüsselt werden. Dies ist nicht zu empfehlen.
-s
Das Passwort wird SHA1-verschlüsselt.
-T<Datenbanktyp>
Dies gibt den konkreten DBM-Typ an. Mögliche Werte sind SDBM, GDBM, DB und default (Systemvorgabe verwenden).
-l
Diese Option gibt die Benutzernamen aus.
-t
Wenn Sie diese Option angeben, wird das letzte Argument als Kommentar gewertet.
-v
Keine Neueingabe, statt dessen sollen Benutzername und Passwort überprüft werden.
-x
Der angegebene Benutzer wird aus der DBM-Datei gelöscht.

Das folgende Beispiel zeigt, wie sich das dbmmanage-Beispiel von oben mit htdbm realisieren lässt:

   # htdbm -c -TSDBM .htdb webadmin
   Enter password : *******
   Re-type password : *******
   Database .htdb created.

   # htdbm .htdb webuser
   Enter password : ***********
   Re-type password : ***********
   Database .htdb modified.

Beispiel zur DBM-Authentifizierung

Hier ein kurzes Beispiel zur Anwendung der oben erstellten DBM-Datei:

   <Location /geheim>
     AuthType Basic
     AuthName "DB Users Only"
     AuthDBMUserFile /usr/local/apache2/misc/.htdb
     Require user webadmin
   </Location>

Beim Versuch, auf den URL-Pfad /geheim zuzugreifen, gibt der Browser nun die übliche Authentifizierungsanforderung aus. Nur der weiter oben definierte Benutzer webadmin darf sich mit seinem korrekten Passwort anmelden.

nach oben
Zur Übersicht
No Software Patents!

Ihre Werbung hier?
    
    www.lingoworld.de
    webmaster@lingoworld.de
    © Copyright 2004-2007 by Lingoworld IT Services, Köln
    designed by Tülay Kersken
    Impressum