7 Stimmen

Wie ändert man ein Benutzerpasswort in einem Skript mit busybox und openssl?

Ich muss ein Benutzerkonto und ein Passwort mit einer externen Quelle auf einem System synchronisieren, das busybox y openssl installiert. Wie ändere ich das Kennwort des Benutzers in einem Skript, wenn die externe Quelle mein System auffordert, die Anmeldedaten zu aktualisieren? Ich werde das Passwort im Klartext haben.

Das muss automatisiert werden, und soweit ich weiß, ist busybox passwd interaktiv, und ich möchte nicht unbedingt ein Skript vom Typ expect für passwd schreiben, wenn das überhaupt möglich ist. Es sieht so aus, als könne openssl Passwort-Hashes erzeugen ( openssl passwd -1 -salt "abcdefgh" {Passwort} ), aber muss ich /etc/shadow direkt ändern?

Busybox hat diese Befehle verfügbar.

8voto

indiv Punkte 16498

Es stellte sich heraus, dass aktuelle Versionen von busybox chpasswd ( Quellcode ). chpasswd nimmt ein durch Doppelpunkte getrenntes Paar username:password auf stdin entgegen. Ich weiß nicht, ob ich die busybox auf meinem System aktualisieren kann, aber ich lasse diese Antwort hier, falls jemand anderes danach sucht.

Aus der busybox-Dokumentation:

chpasswd
chpasswd [--md5|--encrypted]

Read user:password from stdin and update /etc/passwd

Options:

        -e,--encrypted  Supplied passwords are in encrypted form
        -m,--md5        Use MD5 encryption instead of DES

7voto

Suresh Krishnan Punkte 204

Sie können ein kleines Skript wie das folgende schreiben, um das Passwort zu aktualisieren. Fügen Sie den folgenden Text in eine Datei ein und führen Sie ihn aus. Es wird Ihr Passwort ändern.

!/bin/sh

passwd << EOF
<Altes Passwort>
<neues Passwort>
<neues Passwort>
EOF

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X