Eine der seltenen aber lästigen Aufgaben ist das Anlegen eines Verzeichnisschutzes auf dem Server. Für Apache-Server kann dies mit der Shell schnell erledigt werden. Dies hilft zum einen, wenn man SSH Zugriff auf den entsprechenden Server hat oder die Dateien erst lokal angelegt und dann auf den Server kopiert wird. Im Folgenden erkläre ich, wie dies schnell und einfach mit der Shell geht.

.htpasswd generieren

$ cd /absoluter/pfad/zum/verzeichnis/
$ htpasswd -c .htpasswd username

Mit cd /absoluter/pfad/zum/verzeichnis/ wechseln wir zuerst in das Verzeichnis, was geschützt werden soll, was uns später erspart bei jedem Befehl den Pfad erneut anzugeben. htpasswd -c .htpasswd username ist dann der eigentlich Befehl. Das 1. htpasswd ist der Befehlsaufruf, das 2. .htpasswd ist der Name der Kennwort-Datei. Der voran gestellte . sagt dem System, dass es sich um eine versteckte Datei handelt. Die Datei selbst muss nicht zwangsläufig htpasswd heißen, wobei es eine gute Praxis ist sie so zu benennen. username ist der Benutzer, der angelegt werden soll.

Um weitere Benutzer anzugeben wird folgendes angegeben:

$ htpasswd .htpasswd username2

Damit das Verzeichnis letztlich auch wirklich per Login geschützt wird, muss dann noch eine .htaccess Datei angelegt werden (sofern noch keine vorhanden ist), in der der Zugriff konfiguriert und aktiviert wird:

.htaccess anlegen

Sollte noch keine .htaccess vorhanden sein, kann die .htaccess mit folgendem Befehl erstellt werden:

$ touch .htaccess

Um bequem alle Aufgaben in der Shell zu erledigen, nutzen wir einfach den Nano Editor, der im Terminal bzw. der Konsole läuft:

$ nano .htaccess

Dazu einfach den folgenden Code kopieren, anpassen und einfügen.

AuthName "Restricted Area"
AuthType Basic
AuthUserFile /absoluter/pfad/zum/verzeichnis/.htpasswd
AuthGroupFile /dev/null
require valid-user

Restricted Area ist der Titel des Logins. /absoluter/pfad/zum/verzeichnis/ gibt hierbei den absoluten Pfad zu der vorher generierten .htpasswd-Datei auf dem Server an. Befindet man sich auf dem Server und dem entsprechenden Verzeichnis, kann mittels pwd der absolute Pfad ausgegeben werden. Bei Shared Hosting Paketen geben die Webhoster in der Account-Verwaltung für gewöhnlich an, wie der Pfad zum Kundenverzeichnis lautet.

$ pwd

That's it. Jetzt müsste der Login laufen. Was gerne falsch läuft, ist dass der Pfad zur Benutzerdatei falsch ist.

Neuen Kommentar schreiben