Wie verschlüssele ich das Passwort eines neuen Benutzers mit dem Befehl „useradd“?

Wie verschlüssele ich das Passwort eines neuen Benutzers mit dem Befehl „useradd“?

Ich möchte ein verschlüsseltes Anmeldekennwort für einen neuen Benutzer erstellen, während ich den useraddBefehl in der CLI verwende. Ich weiß, dass -pich 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 useraddBefehl 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 cryptModul:

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 --expirediese 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 makepasswdmit(unter Ubuntu oder Debian; googeln Sie nach anderen Distributionen):

sudo apt install makepasswd

verwandte Informationen