2010-01-13 4 views
6

Ich muss ein Benutzerkonto und ein Kennwort mit einer externen Quelle auf einem System mit busybox und openssl synchronisieren. Wenn die externe Quelle mein System anweist, die Anmeldeinformationen zu aktualisieren, wie kann ich das Kennwort des Benutzers in einem Skript ändern? Ich werde das Passwort im Klartext haben.Wie ändern Sie ein Benutzerpasswort in einem Skript mit busybox und openssl?

Das muss automatisiert werden, und von dem, was ich sagen kann, ist busybox passwd interaktiv und ich möchte nicht ein expect-type Skript für passwd schreiben, wenn das überhaupt möglich ist. Es sieht so aus, als könnte openssl Passwort-Hashes generieren (openssl passwd -1 -salt "abcdefgh" {password}), aber muss ich/etc/shadow direkt ändern?

Busybox verfügt über these Befehle zur Verfügung.

Antwort

6

Sie können ein kleines Skript wie dieses 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
< alte Passwort >
< neues Passwort >
< neues Passwort >
EOF

5

Es stellte sich heraus aktuellen Versionen von Busybox haben chpasswd (source code). chpasswd verwendet einen durch Doppelpunkt getrennten Benutzernamen: password auf stdin. Ich weiß nicht, ob ich die Busybox auf meinem System aktualisieren kann, aber ich lasse diese Antwort für den Fall, dass jemand anderes nach ihm sucht.

Von 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 
Verwandte Themen