Passwort vergessen im Adminbereich: so setzen Sie es zurück

 

Drei Monate lang haben Sie keine Fotos hochgeladen, jetzt liegen 60 Bilder vom Vereinsjubiläum auf dem Rechner, und die Anmeldeseite antwortet nur noch mit „Benutzername oder Passwort ist falsch.“ Passwort vergessen im Adminbereich, und nirgends ein Link, der ein neues Kennwort per Mail schickt. Das ist ärgerlich, aber kein Grund, die Galerie neu zu installieren. Ihre Kategorien, Bilder und Beschreibungen bleiben, wo sie sind. Sie ändern nur einen einzigen Eintrag in der Datenbank, und dafür reicht das Werkzeug, das Ihr Webhoster ohnehin bereitstellt.

Passwort vergessen im Adminbereich: Anmeldeseite mit Fehlermeldung, Tabelle admin und UPDATE-Befehl mit MD5 zum Zurücksetzen

Erst suchen, dann zurücksetzen

Bevor Sie an der Datenbank arbeiten, lohnt eine Viertelstunde Suche. Oft ist das Passwort nicht weg, sondern nur an einem Ort, an den Sie gerade nicht denken.

  • Passwortmanager: Suchen Sie nach der Domain der Galerie, nicht nach dem Wort „Galerie“. Viele Programme speichern den Eintrag unter der Adresse, auf der Sie das Passwort zuerst eingegeben haben, also womöglich unter der Seite des Installers.
  • Andere Geräte: Das Tablet oder der zweite Browser hat das Passwort vielleicht beim letzten Login gespeichert, auch wenn der Hauptrechner es nicht kennt.
  • Notizen zur Einrichtung: Wer die Galerie mit einer Anleitung installiert hat, hat sich die Werte oft auf demselben Zettel notiert wie die Daten fürs FTP-Programm.

Bleibt die Suche erfolglos, raten Sie nicht weiter. Jeder falsche Versuch landet im Protokoll, und nach dem fünften innerhalb von 5 Minuten sperrt die Galerie den Zugang ohnehin vorübergehend. Der Weg über die Datenbank ist schneller und sicher.

Warum niemand das alte Passwort auslesen kann

Viele hoffen, das Passwort einfach in der Datenbank nachschlagen zu können. Das klappt nicht, und das ist Absicht. Gespeichert ist nicht das Wort selbst, sondern ein daraus berechneter Hash: Aus „Sommerwiese“ wird eine Zeichenfolge von 60 Zeichen, die mit $2y$ beginnt und keinerlei Ähnlichkeit mit dem Wort hat. Beim Login rechnet die Galerie Ihre Eingabe auf dieselbe Weise um und vergleicht nur die Ergebnisse. Weil das Verfahren bei jedem Speichern zusätzlich einen Zufallswert einmischt, ergibt dasselbe Passwort zweimal gespeichert zwei verschiedene Werte. Einen Rückweg vom Hash zum Wort gibt es nicht. Sie können aber einen neuen, zu Ihrem neuen Passwort passenden Wert hineinschreiben, und genau das ist der Plan.

Was Sie vor dem Zurücksetzen bereitlegen

Mit diesen vier Dingen auf dem Tisch dauert der eigentliche Eingriff kaum fünf Minuten:

  • Kundenmenü des Webhosters: Dort finden Sie phpMyAdmin oder ein vergleichbares Werkzeug für Ihre Datenbanken.
  • FTP-Zugang: Damit sehen Sie in der Konfigurationsdatei der Galerie nach, welche Datenbank sie benutzt und mit welchem Datenbank-Benutzer.
  • Eine frische Sicherung: Exportieren Sie die Tabelle mit den Konten als SQL-Datei, damit Sie einen Tippfehler rückgängig machen können.
  • Ein Übergangspasswort: mindestens 8 Zeichen, schon im Passwortmanager eingetragen, bevor Sie es in die Datenbank schreiben. Es wird gleich nach der Anmeldung ersetzt, muss also nicht perfekt sein.

Verwechseln Sie dabei nicht zwei Anmeldungen. Die Zugangsdaten zur Datenbank gehören zum Webspace und stehen in der Konfigurationsdatei. Die Zugangsdaten zur Galerie gehören Ihnen als Betreiber und stehen, als Hash, in einer Tabelle dieser Datenbank. Mit dem einen kommen Sie an das andere heran.

Passwort vergessen im Adminbereich des Bildergalerie-Scripts

Im Bildergalerie-Script gibt es bewusst keinen Link „Passwort vergessen“ und keinen Versand per E-Mail. Auch der Installer hilft nicht weiter: Liegt die Datei inc/config.php schon vor, zeigt er nur „Die Bildergalerie ist bereits installiert“ und ändert nichts. Der Weg zurück führt deshalb immer über die Datenbank.

Die Zugangsdaten dafür stehen in inc/config.php in den Variablen $db_host, $db_datenbank, $db_user und $db_passwort. Die Konten liegen in der Tabelle admin, der Benutzername in der Spalte username, der Hash in der Spalte password. Ein Tabellen-Präfix gibt es nicht, die Tabelle heißt bei jeder Installation gleich. Ist Ihnen auch der Benutzername entfallen, zeigt ihn diese Abfrage im Reiter „SQL“ von phpMyAdmin: SELECT `username` FROM `admin`;

Ohne Kommandozeile ist der kürzeste Weg ein einziger SQL-Befehl im selben Reiter:

UPDATE `admin` SET `password` = MD5('IhrNeuesPasswort') WHERE `username` = 'IhrBenutzername';

MD5 ist für Passwörter längst überholt, hier dient es aber nur als Brücke. Die Galerie erkennt einen Wert aus 32 Hexadezimalzeichen als altes MD5-Format und ersetzt ihn bei der nächsten erfolgreichen Anmeldung sofort durch einen bcrypt-Hash. Melden Sie sich deshalb gleich nach dem Befehl an. Wie sich der Eintrag in der Spalte password dabei verändert, zeigt das Diagramm.

Animiertes Ablaufdiagramm: Zugangsdaten aus inc/config.php, phpMyAdmin, UPDATE mit MD5 im Reiter SQL; in der Tabelle admin wechselt die Spalte password vom vergessenen bcrypt-Hash zum MD5-Wert und nach dem Anmelden wieder zu bcrypt
Der MD5-Wert lebt nur bis zur nächsten Anmeldung, dann speichert die Galerie wieder einen bcrypt-Hash.

Haben Sie Zugang zur Kommandozeile, erzeugen Sie den bcrypt-Hash direkt mit php -r "echo password_hash('IhrNeuesPasswort', PASSWORD_DEFAULT), PHP_EOL;" und tragen die Ausgabe, die mit $2y$ beginnt, vollständig in die Spalte password ein. So steht das Passwort nie im Klartext in einem SQL-Befehl. Die drei Wege im Vergleich:

WegWas Sie brauchenWann er passt
UPDATE mit MD5()nur phpMyAdminfast immer, danach sofort anmelden
bcrypt-Hash von der KommandozeileSSH-Zugang oder PHP auf dem eigenen Rechnerwenn Sie den Klartext nicht in phpMyAdmin tippen wollen
zweites Konto per INSERTphpMyAdminwenn Sie das alte Konto ohnehin löschen wollen

Praxisfall: erst geraten, dann gesperrt

Sie haben vor dem Zurücksetzen fünfmal geraten, und beim sechsten Versuch meldet die Anmeldeseite „Zu viele fehlgeschlagene Anmeldeversuche. Der Zugang ist für 5 Minuten gesperrt.“ Der neue Hash hebt diese Sperre nicht auf, denn sie zählt die Fehlversuche je IP-Adresse und je Benutzername. So kommen Sie trotzdem in wenigen Minuten wieder hinein:

  1. Setzen Sie das Passwort mit dem UPDATE-Befehl in phpMyAdmin neu.
  2. Warten Sie die 5 Minuten ab. Weitere Versuche während der Sperre verlängern sie nicht, erscheinen aber als „Zugang gesperrt“ im Protokoll.
  3. Melden Sie sich mit dem Übergangspasswort an. Dabei stellt die Galerie den Eintrag auf bcrypt um.
  4. Öffnen Sie in der Verwaltung „Passwort ändern“ und vergeben Sie ein endgültiges Passwort mit mindestens 8 Zeichen. Das ist wichtig, weil das Übergangspasswort im Verlauf von phpMyAdmin stehen kann.
  5. Kontrollieren Sie im „Systemprotokoll“ die Einträge „Zugang gesperrt“, „Anmeldung erfolgreich“ und „Passwort geändert“ mit Zeit und IP-Adresse.

Wer das Vorgehen vorab an einer Testinstallation ausprobieren will, kann das Bildergalerie-Script kostenlos herunterladen und den Reset dort einmal in Ruhe durchspielen.

Nie wieder Passwort vergessen im Adminbereich

Ein vergessenes Passwort ist fast immer ein Zeichen dafür, dass der Zugang zu selten benutzt wird, um im Gedächtnis zu bleiben. Wer viermal im Jahr Fotos einstellt, verlässt sich besser nicht auf sein Gedächtnis. Legen Sie das endgültige Passwort sofort im Passwortmanager ab, und zwar mit der vollständigen Adresse der Verwaltung als Webseite. Notieren Sie zusätzlich auf einem Blatt bei Ihren übrigen Unterlagen zur Website, wo die Konfigurationsdatei liegt und wie die Tabelle heißt. Wer ganz sichergehen will, legt per SQL ein zweites Konto als Notzugang an und verwahrt dessen Passwort an einem anderen Ort als das erste.

Häufige Fragen

Beim Thema Passwort vergessen im Adminbereich drehen sich die meisten Fragen um den Hash, das richtige Werkzeug und die Zugangsdaten drumherum.

Wie erzeuge ich einen passenden Passwort-Hash ohne Kommandozeile?

Legen Sie eine Datei, etwa hash.php, mit dem Inhalt <?php echo password_hash('IhrNeuesPasswort', PASSWORD_DEFAULT); an, laden Sie sie per FTP in den Ordner der Galerie und rufen Sie sie einmal im Browser auf. Die angezeigte Zeichenfolge mit $2y$ am Anfang kopieren Sie in die Spalte password. Löschen Sie die Datei sofort danach wieder, denn sie enthält Ihr Passwort im Klartext und würde für jeden Besucher neue Hashes ausgeben.

Wo trage ich das neue Passwort in phpMyAdmin genau ein?

Wählen Sie links die Datenbank aus inc/config.php und darin die Tabelle admin. Exportieren Sie sie zuerst, dann klicken Sie in der Zeile mit Ihrem Benutzernamen auf „Bearbeiten“ und ersetzen den Inhalt der Spalte password. Bei einem MD5-Wert wählen Sie in der Spalte „Funktion“ den Eintrag MD5 und tippen das Passwort im Klartext ins Wertfeld.

Mein altes Script nutzt MD5, kann ich password_hash trotzdem verwenden?

Das entscheidet der Code, der den Login prüft: Er muss das Format kennen, das Sie hineinschreiben. Ein reines MD5-Script versteht keinen bcrypt-Hash, und umgekehrt. Das Bildergalerie-Script ab Version 3.15 kennt beides und wandelt einen MD5-Wert bei der nächsten Anmeldung von selbst in bcrypt um.

Kann ich statt des vergessenen Kontos einfach ein zweites anlegen?

Ja, im Bildergalerie-Script geht das nur per SQL, etwa mit INSERT INTO `admin` (`username`, `password`) VALUES ('zweiter-admin', MD5('StartPasswort123')); Alle Konten haben dieselben Rechte. Melden Sie sich mit dem neuen Konto an und ändern Sie das Startpasswort sofort unter „Passwort ändern“.

Passwort vergessen im Adminbereich und auch die FTP- oder Datenbank-Zugangsdaten weg?

FTP- und Datenbank-Passwort setzen Sie im Kundenmenü Ihres Webhosters neu. Beim FTP-Passwort ist das unkritisch. Ändern Sie dagegen das Passwort des Datenbank-Benutzers, müssen Sie den neuen Wert anschließend in inc/config.php bei $db_passwort eintragen, sonst kann die Galerie ihre Datenbank nicht mehr öffnen. Das bisherige Datenbank-Passwort steht dort übrigens im Klartext, sobald Sie wieder per FTP an die Datei kommen.

Verwandte Themen

Wer einmal in Datenbank und Verwaltung zugleich gearbeitet hat, findet hier die passenden Grundlagen zu Konten und Zugangsdaten.