
Ich möchte ein verschlüsseltes Anmeldekennwort für einen neuen Benutzer erstellen, während ich den useradd
Befehl in der CLI verwende. Ich weiß, dass -p
ich mit der Option ein Kennwort erstellen kann, aber mit dieser Option wird das Kennwort nicht verschlüsselt. Ich weiß auch, dass ich mit dem passwd [username]
Befehl separat ein verschlüsseltes Kennwort erstellen kann, nachdem der neue Benutzer erstellt wurde useradd
, aber wie gesagt, ich möchte wissen, wie ich mit dem useradd
Befehl ein verschlüsseltes Kennwort erstelle.
Antwort1
Sie könnten Perl verwenden:
perl -e "print crypt(\"foo\", \"\$6\$$(</dev/urandom tr -dc 'a-zA-Z0-9' | head -c 32)\$\")"
Oder Python mit dem crypt
Modul:
python -c "import crypt; print crypt.crypt(\"foo\", \"\$6\$$(</dev/urandom tr -dc 'a-zA-Z0-9' | head -c 32)\$\")"
foo
: das zu verschlüsselnde Passwort$6
: der Verschlüsselungstyp, in diesem Fall SHA-512$(</dev/urandom tr -dc 'a-zA-Z0-9' | head -c 32)
: das Verschlüsselungs-Salt, in diesem Fall eine zufällige 32-Zeichen-Zeichenfolge.
In Verbindung mit useradd
:
useradd [...] -p"$(perl -e "print crypt(\"foo\", \"\$6\$$(</dev/urandom tr -dc 'a-zA-Z0-9' | head -c 32)\$\")")" [...]
Oder:
useradd [...] -p"$(python -c "import crypt; print crypt.crypt(\"foo\", \"\$6\$$(</dev/urandom tr -dc 'a-zA-Z0-9' | head -c 32)\$\")")" [...]
Antwort2
Sie könnten sich den ganzen Aufwand für die Benutzerverwaltung mit vom Administrator erstellten Passwörtern sparen, indem Sie die Benutzer-ID erstellen und passwd --expire
diese dann verwenden. Von man passwd
:
-e, --expire
Immediately expire an account's password. This in effect can force
a user to change his/her password at the user's next login.
Antwort3
Da passwd --stdin in Ubuntu nicht unterstützt, können Sie Folgendes versuchen:
perl -e "print crypt('password','sa');"
sehenhttps://administratosphere.wordpress.com/2011/06/16/generating-passwords-using-crypt3/
Antwort4
Folgendes hat bei mir mit Ubuntu 18.04 LTS funktioniert:
echo 'your_password' > /tmp/pw.txt
pw="$(makepasswd --crypt-md5 --clearfrom=/tmp/pw.txt)"
sudo useradd -p "${pw}" your_username
rm -f /tmp/pw.txt
Dies kann zunächst eine Installation makepasswd
mit(unter Ubuntu oder Debian; googeln Sie nach anderen Distributionen):
sudo apt install makepasswd