Wie stelle ich Benutzerpasswörter mit passwd ohne Aufforderung ein?


20

Ich schreibe ein Skript, um einem System eine große Anzahl von Benutzern hinzuzufügen. Dazu gehört auch das Festlegen von Standardkennwörtern für jeden Benutzer. Wie kann ich Benutzerpasswörter festlegen, ohne dass ich zur Eingabe des Passworts aufgefordert werde?

Leider scheint passwd kein Argument zu akzeptieren, das angibt, welches neue Passwort festgelegt werden soll. Ich benutze Ubuntu 11.10.

Antworten:


22

Versuchen Sie es mit usermod:

usermod --password PASSWORD USERNAME

Das Einzige, was erforderlich ist, ist eine vorverschlüsselte Kennwortfolge, die Sie zuerst generieren müssen.


1
... was ich mit mkpasswd generieren kann. Großartig, danke!
Jake Petroules 18.11.11

16
Sie können auch openssl verwenden, um das verschlüsselte Passwort zu generieren. Zum Beispiel:usermod --password $(echo my_new_password | openssl passwd -1 -stdin) USERNAME
Eric Smith

1
Drei Jahre zu spät. Ich konnte @EricSmith nicht beantworten, aber ich habe eine einfachere Version des Befehls entdeckt, die funktioniert hat:usermod --password $(openssl passwd -1 {password}) {username}
BoCoKeith

13

Sie sollten sich den chpasswdBefehl ansehen (falls in Ihrer Linux-Version verfügbar):

echo 'userid:newpasswd' | chpasswd

Sie können auch eine Datei erstellen, in der die Benutzer-ID: passwd für jedes Konto in einer separaten Zeile aufgeführt ist.

Das ist es.


Dies funktionierte für mich inDockerfile
Vishrant

1

Inspiriert von Eric Smiths Idee funktionierte das Kombinieren openssl passwdund usermod -pBefehlen. Generieren Sie den Hash-Wert des Passworts zusammen mit dem Salt-Wert.

$ openssl passwd -1  -salt 5RPVAd clear-text-passwd43
$1$5RPVAd$vgsoSANybLDepv2ETcUH7.

Kopieren Sie dann den verschlüsselten String nach usermod. Stellen Sie sicher, dass Sie es mit einem einfachen Anführungszeichen versehen.

$ usermod -p '$1$5RPVAd$vgsoSANybLDepv2ETcUH7.' root

Probieren Sie es in der Shadow-Datei aus.

$ grep root /etc/shadow
root:$1$5RPVAd$vgsoSANybLDepv2ETcUH7.:17774:0:99999:7:::

0

Sie sollten die Kennwortalterung verwenden und die Benutzer so einstellen, dass sie ihr Kennwort bei der ersten Anmeldung ändern müssen. Siehe diesen Artikel .


Dies sollten nur FTP-Konten sein, aber gute Ratschläge. ;)
Jake Petroules
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.