Linux chpasswd: Passwörter automatisiert im Batch ändern

Grundlagen und Einsatzbereiche

Bei der Betreuung moderner Linux-Systeme stößt der klassische interaktive Befehl passwd schnell an funktionale Grenzen, sobald Zugangsdaten für mehrere Benutzer auf einmal eingerichtet oder rotiert werden müssen. Genau an dieser Stelle setzt das Utility chpasswd an: Es liest Kontoinformationen direkt über den Standard-Input (stdin) ein und erlaubt die vollständige Skript- und Batch-Automatisierung ohne manuelle Eingabeaufforderungen. In dieser Anleitung erfahren Sie praxisnah unter Ubuntu, wie Sie Kennwörter sowohl für Einzelfälle als auch für umfangreiche Nutzerlisten im Stapelverfahren verarbeiten und gezielt mit modernen Hashing-Algorithmen absichern.

Funktionsweise von chpasswd und Einzelkonto-Aktualisierung

Zur Vorbereitung unseres Tests legen wir zunächst über sudo useradd -m -s /bin/bash testuser1 ein separates Benutzerkonto mit eigener Login-Shell und Home-Verzeichnis an.

Testbenutzer testuser1 einrichten

Das Programm chpasswd erwartet Eingabedaten im standardisierten Format benutzername:passwort. Durch die Verknüpfung mit einer Shell-Pipe (|) lassen sich Kennwortänderungen unmittelbar und ohne Unterbrechung durch interaktive Dialoge an das System übermitteln.

⚙️ [Wichtige Parameter im Überblick]

-c : Legt das kryptografische Hash-Verfahren fest (beispielsweise DES, MD5, SHA256 oder SHA512).
-e : Teilt dem Dienst mit, dass das übergebene Passwort bereits als fertiger Hash vorliegt.
-m : Weist das System an, die veraltete MD5-Verschlüsselung einzusetzen.
-s : Definiert bei SHA-Verfahren die Anzahl der Verschlüsselungsrunden zur Härtung.
-R : Führt die Kennwortaktualisierung innerhalb eines angegebenen chroot-Verzeichnisses aus.

Passwort für testuser1 via chpasswd setzen

Um sicherzustellen, dass die Aktualisierung erfolgreich ins System geschrieben wurde, überprüfen wir den betreffenden Datensatz in der Datei /etc/shadow. Dort zeigt sich, dass das Kennwort für testuser1 ordnungsgemäß als kryptografischer Hash hinterlegt wurde.

Eintrag in /etc/shadow auslesen

Mehrere Benutzerkonten per Datei-Batch synchronisieren

Um die Stapelverarbeitung für größere Umgebungen zu demonstrieren, erzeugen wir mit sudo useradd -m -s /bin/bash testuser2 && sudo useradd -m -s /bin/bash testuser3 zwei weitere Konten für den Testlauf.

Zwei weitere Benutzerkonten erstellen

Die gewünschten Zugangsdaten strukturieren wir zeilenweise nach dem Schema benutzername:passwort und speichern sie gebündelt in der Datei user_passwords.txt.

Batch-Datei user_passwords.txt anlegen

Mithilfe der Eingabeumleitung (<) übergeben wir die vorbereitete Datei user_passwords.txt an chpasswd. Sämtliche darin enthaltenen Anmeldedaten werden dabei in einem einzigen, unterbrechungsfreien Arbeitsgang im System aktualisiert.

Passwörter aus Datei im Batch importieren

Zur Gegenkontrolle filtern wir /etc/shadow mithilfe von sudo grep -E '^(testuser2|testuser3):' /etc/shadow | cut -d: -f1. Beide Accounts erscheinen in der Ausgabe, was den erfolgreichen Abschluss der Massenänderung bestätigt.

Aktualisierte Accounts in /etc/shadow kontrollieren

Verschlüsselungsverfahren steuern (-c) und Härtungsoptionen

Über die Option -c SHA512 lässt sich erzwingen, dass chpasswd das eingehende Klartextpasswort gezielt mit dem robusten SHA-512-Verfahren chiffriert, bevor es für testuser1 gespeichert wird. Diese explizite Steuerung sorgt für eine verlässliche Einhaltung moderner Sicherheitsstandards.

Kennwort mit SHA512-Hash zuweisen

Eine erneute Abfrage des Eintrags in /etc/shadow verifiziert die korrekte Chiffrierung: Das vorangestellte Präfix $6$ weist eindeutig nach, dass der Passwort-Hash nach dem SHA-512-Standard berechnet und abgelegt wurde.

SHA-512 Hash-Präfix in /etc/shadow überprüfen

Testumgebung aufräumen und Konten entfernen

Sobald die Tests abgeschlossen sind, bereinigen wir das System vollständig. Der Aufruf sudo userdel -r testuser1 && sudo userdel -r testuser2 && sudo userdel -r testuser3 entfernt die Testnutzer mitsamt ihren Benutzerverzeichnissen restlos aus der Konfiguration.

Testbenutzer samt Home-Verzeichnissen entfernen

Zuletzt beseitigen wir mit rm -f user_passwords.txt auch die zwischenzeitlich angelegte Textdatei mit den Zugangsdaten, um keine sensiblen Klartextdaten auf dem Server zu hinterlassen.

Temporäre Passwortdatei user_passwords.txt löschen

Wie gezeigt stellt chpasswd ein wirkungsvolles Werkzeug dar, um Benutzerkennwörter unter Linux effizient und skriptbasiert zu verwalten. Insbesondere in automatisierten Bereitstellungsketten und administrativen Wartungsszenarien bietet das Tool einen signifikanten Zeit- und Sicherheitsgewinn.