Linux useradd und Passwort von der Kommandozeile?

675
u123

Basierend auf der Dokumentation hier:

https://linux.die.net/man/8/adduser

Ich versuche in Ubuntu 17.10 einen neuen Benutzer mit einem Standard-Home-Verzeichnis anzulegen und das Passwort anzugeben:

useradd john -m -p mypassword 

Der Benutzer ist gut angelegt, aber wenn ich neben SSH auf dem Computer versuche, den neuen Benutzer mit dem angegebenen Kennwort (mypassword) zu verwenden, erhalte ich Folgendes:

$ ssh john@my-host john@my-host's password:  Permission denied, please try again. john@my-host's password:  

Warum funktioniert das nicht mit dem Passwort, das ich beim Erstellen des Benutzers verwendet habe?

Basierend auf der untenstehenden Antwort ist useraddein verschlüsseltes Passwort erforderlich. Über die Befehlszeile kann ich Folgendes tun:

$ echo -n testpass | makepasswd --crypt-md5 --clearfrom - testpass $1$eaXbTWAK$8flrqGzhmtWPjzRcrxWBf/ 

Aber wie kann ich das weitergeben, useraddum es möglich zu machen, das Ganze auf einer Linie zu erledigen?

1

2 Antworten auf die Frage

3
Ignacio Vazquez-Abrams

Aus der adduser(8)Manpage:

-p, --password PASSWORT

Das verschlüsselte Passwort, wie von crypt (3) zurückgegeben.

Die Angabe des Passworts als Klartext funktioniert nicht.

0
paradoxon

Sie können mehrere Befehle mit dem Konstrukt $ (Some-cm) kombinieren. Dies bewirkt, dass bash zuerst die Klammer auswertet und stattdessen den Rückgabewert verwendet:

echo foo $(echo bar) 

wird zuerst den zweiten Befehl auswerten und dann den ersten Befehl auswerten. Sie können dies verwenden, um zuerst Ihr Passwort zu generieren und es dann in den Befehl adduser zu schreiben.

Oder Sie verwenden Befehlskettung: user=john; useradd -m $user && passwd $user. Hier werden Sie jedoch immer noch zur Eingabe des Passworts aufgefordert.