So richten Sie die Apache htpasswd-Authentifizierung unter Ubuntu ein
Die `htpasswd`-Authentifizierung von Apache bietet HTTP Basic Authentication — einen serverseitigen Zugriffskontrollmechanismus, der jede Browseranfrage mit einer Benutzername/Passwort-Eingabeaufforderung herausfordert, bevor Inhalte bereitgestellt werden. Sie erfordert keinen Code auf der Anwendungsebene, arbeitet vollständig innerhalb des Modulsystems von Apache und wird auf der Webserver-Ebene durchgesetzt, bevor jegliche PHP-, Python- oder Node.js-Backend-Logik ausgeführt wird.
Dies macht es zur schnellsten und zuverlässigsten Methode zum Schutz von Staging-Umgebungen, internen Admin-Panels, Entwicklungs-Builds und allen Verzeichnissen, die vor dem öffentlichen Internet verborgen bleiben müssen, ohne einen vollständigen Identity Provider einzusetzen.
Wann htpasswd das richtige Werkzeug ist — und wann nicht
Bevor Sie einen einzigen Befehl eingeben, sollten Sie das Bedrohungsmodell verstehen. HTTP Basic Authentication überträgt Anmeldedaten als Base64-kodierten String im `Authorization`-Header. Base64 ist keine Verschlüsselung — es ist trivial umkehrbar. Das bedeutet, dass die htpasswd-Authentifizierung nur dann sicher ist, wenn sie über HTTPS eingesetzt wird. Ohne TLS sind die Anmeldedaten im Klartext für jeden Netzwerkbeobachter sichtbar.
Geeignete Anwendungsfälle:
- Staging- und Vorproduktionsumgebungen
- Interne Entwickler-Tools und Dashboards
- Vorübergehende Einschränkung einer Website während der Wartung
- Hinzufügen einer sekundären Authentifizierungsebene vor einer Anwendung mit eigenem Login
- Schutz von WordPress `wp-admin` oder `xmlrpc.php` auf Server-Ebene
Ungeeignete Anwendungsfälle:
- Primäre Authentifizierung für öffentlich zugängliche Anwendungen, die sensible Benutzerdaten verarbeiten
- Umgebungen, in denen die Rotation von Anmeldedaten geprüft und protokolliert werden muss
- Mandantenfähige Systeme, die rollenbasierte Zugriffskontrolle erfordern
Wenn Ihr Anwendungsfall Produktionsbenutzerkonten umfasst, sollten Sie stattdessen OAuth2, LDAP oder anwendungsseitiges Session-Management in Betracht ziehen.
Voraussetzungen
- Ein Ubuntu 20.04-, 22.04- oder 24.04-Server mit Root- oder `sudo`-Zugriff
- Apache 2.4 installiert oder über `apt` installierbar
- Eine registrierte Domain mit DNS, das auf Ihren Server zeigt (für SSL dringend empfohlen)
- Grundlegende Kenntnisse der Linux-Befehlszeile und Texteditoren
Wenn Sie von Grund auf neu beginnen, bietet eine VPS Hosting-Umgebung vollen Root-Zugriff und ein sauberes Ubuntu-Image — die ideale Ausgangsbasis für diese Konfiguration.
Schritt 1: Apache2 installieren
Wenn Apache noch nicht installiert ist, aktualisieren Sie den Paketindex und installieren Sie es:
“`bash
sudo apt update && sudo apt install apache2 -y
“`
Überprüfen Sie die Installation und bestätigen Sie, dass der Dienst läuft:
“`bash
sudo systemctl status apache2
apache2 -v
“`
Aktivieren Sie Apache, damit es beim Neustart automatisch startet:
“`bash
sudo systemctl enable apache2
“`
Das Standard-Dokumentenverzeichnis von Apache ist `/var/www/html`. Die primäre Site-Konfiguration befindet sich unter `/etc/apache2/sites-available/000-default.conf`.
Schritt 2: Das apache2-utils-Paket installieren
Die `htpasswd`-Binärdatei ist Teil des `apache2-utils`-Pakets. Bei den meisten Ubuntu-Installationen wird dieses Paket zusammen mit Apache installiert, aber bestätigen Sie seine Anwesenheit explizit:
“`bash
which htpasswd
“`
Wenn der Befehl nichts zurückgibt, installieren Sie das Paket:
“`bash
sudo apt install apache2-utils -y
“`
Das `apache2-utils`-Paket stellt auch `htdigest` (für Digest Authentication), `ab` (Apache Bench für Lasttests) und `htdbm` (für Passwortdateien im DBM-Format) bereit. Für die meisten Szenarien ist `htpasswd` mit dem Standard-bcrypt- oder MD5-Hashing ausreichend.
Schritt 3: Die .htpasswd-Datei erstellen und Benutzer hinzufügen
Auswahl eines Passwort-Hashing-Algorithmus
Dies ist ein Detail, das die ursprüngliche Dokumentation fast universell auslässt. Das `htpasswd`-Dienstprogramm unterstützt mehrere Hashing-Verfahren, und die Wahl hat echte Sicherheitsauswirkungen:
| Algorithmus | Flag | Sicherheitsstufe | Hinweise |
|---|
| ———– | —— | ————— | ——- |
|---|
| bcrypt | `-B` | Stark | Empfohlen; rechenintensiv by Design |
|---|
| SHA-256/512 (apr1-md5) | `-m` | Moderat | Standard auf den meisten Linux-Systemen; akzeptabel |
|---|
| MD5 (Legacy) | `-m` bei einigen Builds | Schwach | Nicht für neue Deployments verwenden |
|---|
| Klartext | `-p` | Keine | Niemals in der Produktion verwenden |
|---|
| SHA-1 | `-s` | Schwach | Veraltet; anfällig für Brute-Force |
|---|
Verwenden Sie immer bcrypt für neue `.htpasswd`-Dateien:
“`bash
sudo htpasswd -cB /etc/apache2/.htpasswd your_username
“`
Erläuterung der Flags:
- `-c` — Erstellt eine neue Datei. Kritische Warnung: Wenn die Datei bereits existiert, überschreibt `-c` sie stillschweigend und löscht alle vorhandenen Benutzer. Verwenden Sie `-c` nur einmal, beim erstmaligen Erstellen der Datei.
- `-B` — Erzwingt bcrypt-Hashing
- `/etc/apache2/.htpasswd` — Der Zieldateipfad, absichtlich außerhalb des Web-Roots
- `your_username` — Ersetzen Sie dies durch den tatsächlichen Benutzernamen
Sie werden aufgefordert, das Passwort einzugeben und zu bestätigen. Der resultierende Dateieintrag sieht wie folgt aus:
“`
your_username:$2y$05$randomsaltandhashedpasswordstring
“`
Weitere Benutzer hinzufügen
Um weitere Benutzer zu einer bestehenden Datei hinzuzufügen, lassen Sie das `-c`-Flag weg:
“`bash
sudo htpasswd -B /etc/apache2/.htpasswd second_user
sudo htpasswd -B /etc/apache2/.htpasswd third_user
“`
Einen Benutzer entfernen
“`bash
sudo htpasswd -D /etc/apache2/.htpasswd username_to_remove
“`
Den Dateiinhalt überprüfen
“`bash
sudo cat /etc/apache2/.htpasswd
“`
Jede Zeile repräsentiert einen Benutzer im Format `username:hashed_password`.
Schritt 4: Apache für den Passwortschutz konfigurieren
Es gibt zwei Methoden zur Anwendung der htpasswd-Authentifizierung: über `.htaccess`-Dateien oder direkt in der Virtual-Host-Konfiguration. Jede hat unterschiedliche Auswirkungen auf Leistung und Wartung.
Methodenvergleich
| Faktor | .htaccess-Methode | Virtual-Host-Konfigurationsmethode |
|---|
| ——– | —————– | ————————— |
|---|
| Apache-Neustart erforderlich | Nein | Ja |
|---|
| Leistungsauswirkung | Höher (Apache liest bei jeder Anfrage) | Niedriger (einmalig beim Start geladen) |
|---|
| Granularität | Pro Verzeichnis, delegiert | Zentralisiert in der Konfigurationsdatei |
|---|
| Empfohlen für | Shared Hosting, dynamische Pro-Verzeichnis-Konfiguration | Dedizierte/VPS-Server mit Root-Zugriff |
|---|
| Sicherheitslage | Etwas schwächer (Datei muss vom Web-Prozess lesbar sein) | Stärker (Konfiguration nicht über Web zugänglich) |
|---|
Auf einem Dedicated Server oder VPS, auf dem Sie vollen Root-Zugriff haben, ist die Virtual-Host-Konfigurationsmethode aus Gründen der Leistung und Wartbarkeit immer vorzuziehen.
Option 1: Verwendung von .htaccess-Dateien
Diese Methode erfordert, dass `AllowOverride` für das Zielverzeichnis aktiviert ist. Bearbeiten Sie zunächst die Site-Konfiguration:
“`bash
sudo nano /etc/apache2/sites-available/000-default.conf
“`
Suchen oder fügen Sie den `<Directory>`-Block für Ihr Web-Root hinzu und setzen Sie `AllowOverride All`:
“`apache
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
<Directory /var/www/html>
AllowOverride All
Options -Indexes +FollowSymLinks
Require all granted
</Directory>
</VirtualHost>
“`
Starten Sie Apache neu, um die Konfigurationsänderung anzuwenden:
“`bash
sudo systemctl restart apache2
“`
Erstellen Sie nun die `.htaccess`-Datei im Verzeichnis, das Sie schützen möchten:
“`bash
sudo nano /var/www/html/.htaccess
“`
Fügen Sie die folgenden Authentifizierungsdirektiven hinzu:
“`apache
AuthType Basic
AuthName "Restricted Access — Authorized Personnel Only"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
“`
Erläuterung der Direktiven:
- `AuthType Basic` — Aktiviert HTTP Basic Authentication. Die Alternative ist `Digest`, die das Senden von Anmeldedaten in Base64 vermeidet, aber breitere Kompatibilitätsprobleme hat.
- `AuthName` — Der Realm-String, der im Login-Dialog des Browsers angezeigt wird. Machen Sie ihn aussagekräftig genug, damit legitime Benutzer verstehen, worauf sie zugreifen.
- `AuthUserFile` — Absoluter Pfad zur `.htpasswd`-Datei. Muss vom Apache-Prozessbenutzer (`www-data`) lesbar sein.
- `Require valid-user` — Gewährt Zugriff für jeden Benutzer, der in der `.htpasswd`-Datei vorhanden ist. Sie können den Zugriff mit `Require user alice bob` weiter einschränken, um nur bestimmte Konten zuzulassen.
Speichern und schließen Sie die Datei. Ein Apache-Neustart ist nicht erforderlich — `.htaccess`-Änderungen treten sofort in Kraft.
Option 2: Direkte Virtual-Host-Konfiguration (Empfohlen)
Dies ist der produktionsreife Ansatz. Bearbeiten Sie die Virtual-Host-Konfigurationsdatei direkt:
“`bash
sudo nano /etc/apache2/sites-available/000-default.conf
“`
Fügen Sie einen `<Directory>`-Block mit Authentifizierungsdirektiven innerhalb des `<VirtualHost>`-Blocks hinzu:
“`apache
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ServerName yourdomain.com
<Directory "/var/www/html/protected">
AuthType Basic
AuthName "Internal Tools"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
Options -Indexes
</Directory>
</VirtualHost>
“`
Beachten Sie die Verwendung von `/var/www/html/protected` anstelle des gesamten Web-Roots. Die Beschränkung der Authentifizierung auf ein Unterverzeichnis ist in der Praxis weitaus üblicher — Sie schützen `/admin`, `/staging` oder `/api-docs`, während die öffentliche Website zugänglich bleibt.
Überprüfen Sie die Konfigurationssyntax vor dem Neustart:
“`bash
sudo apachectl configtest
“`
Sie sollten `Syntax OK` sehen. Wenn Fehler vorhanden sind, beschreibt Apache diese präzise. Starten Sie Apache in der Produktion niemals neu, ohne diese Prüfung bestanden zu haben.
Apache neu starten:
“`bash
sudo systemctl restart apache2
“`
Bestimmte Dateitypen statt Verzeichnisse schützen
Ein weniger bekanntes, aber sehr praktisches Muster ist die Verwendung von `<FilesMatch>`, um den Zugriff auf bestimmte Dateiendungen statt auf ganze Verzeichnisse zu beschränken:
“`apache
<FilesMatch ".(env|log|sql|bak)$">
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
</FilesMatch>
“`
Dies ist besonders nützlich, um den direkten Zugriff auf `.env`-Dateien, Datenbank-Dumps oder Log-Dateien zu blockieren, die aus Legacy-Gründen im Web-Root vorhanden sein könnten.
Schritt 5: SSL aktivieren, bevor Sie live gehen
Wie bereits festgestellt, ist HTTP Basic Authentication über einfaches HTTP unsicher. Bevor Sie eine htpasswd-geschützte Ressource dem Internet zugänglich machen, erzwingen Sie HTTPS.
Installieren Sie Certbot für Let’s Encrypt-Zertifikate:
“`bash
sudo apt install certbot python3-certbot-apache -y
sudo certbot –apache -d yourdomain.com
“`
Certbot modifiziert automatisch Ihre Apache-Konfiguration, um HTTP auf HTTPS umzuleiten und das Zertifikat zu installieren. Alternativ können Sie ein kommerzielles Zertifikat über SSL Certificates für Domains bereitstellen, die eine erweiterte Validierung oder Wildcard-Abdeckung benötigen.
Fügen Sie nach der Aktivierung von SSL eine HTTPS-Weiterleitung zu Ihrem HTTP-Virtual-Host hinzu:
“`apache
<VirtualHost *:80>
ServerName yourdomain.com
Redirect permanent / https://yourdomain.com/
</VirtualHost>
“`
Schritt 6: .htpasswd-Dateiberechtigungen absichern
Die `.htpasswd`-Datei enthält gehashte Anmeldedaten. Obwohl bcrypt-Hashes rechenintensiv zu knacken sind, muss die Datei auf Dateisystemebene geschützt werden.
Setzen Sie den Eigentümer auf den Apache-Prozessbenutzer und schränken Sie die Leseberechtigungen ein:
“`bash
sudo chown root:www-data /etc/apache2/.htpasswd
sudo chmod 640 /etc/apache2/.htpasswd
“`
Diese Konfiguration bedeutet:
- `root` besitzt die Datei und kann sie lesen/schreiben
- `www-data` (der Apache-Prozess) kann sie lesen
- Alle anderen Benutzer haben keinen Zugriff
Überprüfen Sie die Berechtigungen:
“`bash
ls -la /etc/apache2/.htpasswd
“`
Erwartete Ausgabe:
“`
-rw-r—– 1 root www-data 89 Jan 15 10:23 /etc/apache2/.htpasswd
“`
Direkten Web-Zugriff auf .htpasswd blockieren
Falls die `.htpasswd`-Datei aus irgendeinem Grund im Web-Root liegt, fügen Sie eine explizite Ablehnungsregel zu Ihrer Apache-Konfiguration oder `.htaccess` hinzu:
“`apache
<Files ".htpasswd">
Require all denied
</Files>
“`
Dies ist eine Defense-in-Depth-Maßnahme. Die Datei sollte sich niemals im Web-Root befinden, aber diese Regel stellt sicher, dass Apache auch dann eine 403 Forbidden-Antwort zurückgibt, anstatt die Datei auszuliefern.
Schritt 7: Die Authentifizierung testen
Öffnen Sie einen Browser und navigieren Sie zur geschützten URL:
“`
http://your_server_ip_or_domain/protected/
“`
Sie sollten einen nativen Browser-Authentifizierungsdialog sehen. Geben Sie die Anmeldedaten ein, die Sie mit `htpasswd` erstellt haben. Eine erfolgreiche Authentifizierung gewährt Zugriff; falsche Anmeldedaten geben eine HTTP 401 Unauthorized-Antwort zurück.
Testen über die Befehlszeile
Verwenden Sie `curl`, um das Authentifizierungsverhalten ohne Browser zu überprüfen:
“`bash
Test with correct credentials — should return 200 OK
curl -u your_username:your_password -I http://yourdomain.com/protected/
Test without credentials — should return 401 Unauthorized
curl -I http://yourdomain.com/protected/
Test with wrong credentials — should return 401 Unauthorized
curl -u your_username:wrongpassword -I http://yourdomain.com/protected/
“`
Dies ist besonders nützlich in CI/CD-Pipelines oder automatisierten Überwachungsskripten, bei denen Sie nach Deployments überprüfen müssen, ob die Authentifizierung korrekt durchgesetzt wird.
Erweiterte Konfigurationsmuster
htpasswd mit IP-basierter Zugriffskontrolle kombinieren
Sie können Passwortauthentifizierung mit IP-Whitelisting über `RequireAll`- oder `RequireAny`-Blöcke kombinieren:
“`apache
<Directory "/var/www/html/admin">
AuthType Basic
AuthName "Admin Panel"
AuthUserFile /etc/apache2/.htpasswd
Allow access if EITHER condition is met
<RequireAny>
Require ip 192.168.1.0/24
Require valid-user
</RequireAny>
</Directory>
“`
Oder beide Bedingungen gleichzeitig erfordern (IP muss übereinstimmen UND Anmeldedaten müssen gültig sein):
“`apache
<RequireAll>
Require ip 203.0.113.0/24
Require valid-user
</RequireAll>
“`
Dieses Muster ist äußerst effektiv für Admin-Panels: Benutzer im internen Netzwerk erhalten passwortgeschützten Zugriff, während externe IPs unabhängig von den Anmeldedaten vollständig blockiert werden.
Authentifizierungsversuche begrenzen
HTTP Basic Authentication hat keinen eingebauten Brute-Force-Schutz. Mildern Sie dies mit `mod_evasive` oder `fail2ban`:
“`bash
sudo apt install fail2ban -y
“`
Erstellen Sie einen benutzerdefinierten Fail2ban-Filter für Apache-Authentifizierungsfehler unter `/etc/fail2ban/filter.d/apache-auth.conf`:
“`ini
[Definition]
failregex = ^<HOST> -.*"(GET|POST|HEAD).*" 401
ignoreregex =
“`
Fügen Sie eine Jail-Konfiguration unter `/etc/fail2ban/jail.local` hinzu:
“`ini
[apache-auth]
enabled = true
port = http,https
filter = apache-auth
logpath = /var/log/apache2/access.log
maxretry = 5
bantime = 3600
findtime = 600
“`
Fail2ban neu starten:
“`bash
sudo systemctl restart fail2ban
“`
Dies sperrt jede IP, die innerhalb von zehn Minuten fünf 401-Antworten erzeugt, für eine Stunde — ein erhebliches Abschreckungsmittel gegen automatisiertes Credential Stuffing.
Location-Blöcke für URL-basierten Schutz verwenden
Für Anwendungen, bei denen der geschützte Inhalt von einem bestimmten URL-Pfad statt einem Dateisystemverzeichnis bereitgestellt wird, verwenden Sie `<Location>` anstelle von `<Directory>`:
“`apache
<Location "/api/internal">
AuthType Basic
AuthName "Internal API"
AuthUserFile /etc/apache2/.htpasswd
Require user api_user service_account
</Location>
“`
Beachten Sie die Verwendung von `Require user` mit bestimmten Benutzernamen anstelle von `Require valid-user` — dies beschränkt den Endpunkt auf nur diese beiden Konten, auch wenn die `.htpasswd`-Datei weitere Benutzer enthält.
Praktische Entscheidungsmatrix
Verwenden Sie diese Matrix, um den richtigen Konfigurationsansatz für Ihr Szenario zu bestimmen:
| Szenario | Empfohlener Ansatz |
|---|
| ———- | ——————— |
|---|
| Schutz eines Staging-Unterverzeichnisses auf einem VPS | Virtual-Host-`<Directory>`-Block mit bcrypt |
|---|
| Shared Hosting ohne Apache-Konfigurationszugriff | `.htaccess`-Methode |
|---|
| Admin-Panel nur vom Büro-IP zugänglich | `RequireAll` mit IP + valid-user kombinieren |
|---|
| `.env`- und `.sql`-Dateien im Web-Root blockieren | `<FilesMatch>` mit `Require all denied` |
|---|
| Hochfrequentierte Website mit Auth auf einem Pfad | `<Location>`-Block in der Virtual-Host-Konfiguration |
|---|
| Jede öffentlich zugängliche geschützte Ressource | Obligatorisches SSL + htpasswd + Fail2ban |
|---|
Wichtige technische Erkenntnisse
- Verwenden Sie immer bcrypt (`-B`-Flag) beim Erstellen von `.htpasswd`-Dateien. Legacy-MD5- und SHA-1-Hashes sind mit moderner GPU-Hardware in Sekunden knackbar.
- Setzen Sie htpasswd niemals über HTTP ein in einer Umgebung, die vom Internet aus zugänglich ist. Die Base64-Kodierung von Basic-Auth-Anmeldedaten bietet keinerlei Vertraulichkeit.
- Bevorzugen Sie die Virtual-Host-Konfiguration gegenüber `.htaccess` auf jedem Server, auf dem Sie Root-Zugriff haben. Der Leistungsunterschied ist unter Last messbar, da Apache `.htaccess`-Dateien bei jeder einzelnen Anfrage neu liest.
- Beschränken Sie den Schutz auf das minimal notwendige Verzeichnis oder den URL-Pfad. Das vollständige Schützen von `/var/www/html`, wenn nur `/var/www/html/admin` geschützt werden muss, erzeugt unnötige Reibung.
- Setzen Sie `.htpasswd`-Berechtigungen auf `640` mit `root:www-data`-Eigentümerschaft. Die Datei sollte niemals für alle lesbar sein.
- Implementieren Sie Fail2ban, um Brute-Force-Angriffe zu verhindern. HTTP Basic Auth hat keinen nativen Ratenbegrenzungs- oder Kontosperrungsmechanismus.
- Validieren Sie die Apache-Konfiguration mit `apachectl configtest` vor jedem Neustart in Produktionsumgebungen.
- Kombinieren Sie htpasswd mit Ihrer Domain-Infrastruktur. Eine ordnungsgemäß konfigurierte Domain mit DNS und SSL ist die Grundlage — verwalten Sie Ihre über Domain Registration, um alle Infrastrukturkomponenten bei einem Anbieter zu bündeln.
Für Teams, die mehrere geschützte Umgebungen verwalten, bietet ein VPS mit cPanel eine grafische Oberfläche zur Verwaltung passwortgeschützter Verzeichnisse ohne direkten Befehlszeilenzugriff, was Konfigurationsfehler in weniger technischen Teams reduzieren kann.
FAQ
Funktioniert die htpasswd-Authentifizierung mit allen Browsern?
Ja. HTTP Basic Authentication ist in RFC 7617 definiert und wird von jedem modernen Browser unterstützt, einschließlich Chrome, Firefox, Safari und Edge. Mobile Browser unterstützen sie ebenfalls. Das Erscheinungsbild des nativen Browser-Dialogs variiert je nach Browser und Betriebssystem, aber das zugrunde liegende Protokollverhalten ist identisch.
Was passiert, wenn der .htpasswd-Dateipfad in der Apache-Konfiguration falsch ist?
Apache gibt einen 500 Internal Server Error für jede Anfrage an die geschützte Ressource zurück und protokolliert einen Fehler ähnlich wie `Could not open password file: /path/to/.htpasswd` in `/var/log/apache2/error.log`. Überprüfen Sie immer, ob der absolute Pfad korrekt ist und ob der `www-data`-Benutzer Leseberechtigung für die Datei hat.
Kann ich htpasswd verwenden, um den Admin-Bereich einer WordPress-Website zu schützen?
Ja, und es ist eine empfohlene Härtungspraxis. Das Hinzufügen von htpasswd-Schutz für `/wp-admin/` und die Einschränkung des Zugriffs auf `xmlrpc.php` fügt eine Authentifizierungsebene auf Server-Ebene hinzu, bevor die eigene Login-Logik von WordPress ausgeführt wird, und blockiert automatisierte Bots und Brute-Force-Skripte, die PHP nie erreichen. Konfigurieren Sie es als `<Directory>`-Block in Ihrem Virtual Host anstelle von `.htaccess` für bessere Leistung.
Wie aktualisiere ich das Passwort eines Benutzers in einer bestehenden .htpasswd-Datei?
Führen Sie `htpasswd` ohne das `-c`-Flag aus und geben Sie den vorhandenen Benutzernamen an: `sudo htpasswd -B /etc/apache2/.htpasswd existing_user`. Sie werden nach dem neuen Passwort gefragt. Der Befehl überschreibt nur den Eintrag dieses Benutzers und lässt alle anderen Benutzer unberührt.
Gibt es eine Begrenzung für die Anzahl der Benutzer, die in einer .htpasswd-Datei gespeichert werden können?
Es gibt kein von Apache auferlegtes hartes Limit. Da Apache jedoch bei jeder Authentifizierungsanfrage einen linearen Scan der Datei durchführt, verschlechtert sich die Leistung bei sehr großen Dateien merklich — typischerweise ab mehreren hundert Benutzern. Für Umgebungen, die Authentifizierung für Dutzende oder Hunderte von Benutzern erfordern, sollten Sie `mod_authn_dbd` mit einem Datenbank-Backend oder LDAP-Authentifizierung über `mod_authnz_ldap` in Betracht ziehen, die für diese Größenordnung ausgelegt sind.
