
Me gustaría crear una contraseña de inicio de sesión cifrada para un nuevo usuario mientras uso el useradd
comando en la CLI. Sé que usar la opción -p
me permitirá crear una contraseña, pero usar esta opción no cifra la contraseña. También sé que puedo crear una contraseña cifrada usando el passwd [username]
comando por separado después de que se haya creado el nuevo usuario useradd
, pero como dije, me gustaría saber cómo crear una contraseña cifrada a través del useradd
comando.
Respuesta1
Podrías usar Perl:
perl -e "print crypt(\"foo\", \"\$6\$$(</dev/urandom tr -dc 'a-zA-Z0-9' | head -c 32)\$\")"
O Python con el crypt
módulo:
python -c "import crypt; print crypt.crypt(\"foo\", \"\$6\$$(</dev/urandom tr -dc 'a-zA-Z0-9' | head -c 32)\$\")"
foo
: la contraseña para cifrar$6
: el tipo de cifrado, en este caso SHA-512$(</dev/urandom tr -dc 'a-zA-Z0-9' | head -c 32)
: la sal de cifrado, en este caso una cadena aleatoria de 32 caracteres.
En conjunto con useradd
:
useradd [...] -p"$(perl -e "print crypt(\"foo\", \"\$6\$$(</dev/urandom tr -dc 'a-zA-Z0-9' | head -c 32)\$\")")" [...]
O:
useradd [...] -p"$(python -c "import crypt; print crypt.crypt(\"foo\", \"\$6\$$(</dev/urandom tr -dc 'a-zA-Z0-9' | head -c 32)\$\")")" [...]
Respuesta2
Puede evitar toda la molestia de la administración de usuarios con contraseña creada por el administrador creando el ID de usuario y luego utilizándolo passwd --expire
. De 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.
Respuesta3
Como passwd no es compatible con --stdin en Ubuntu, puedes probar esto:
perl -e "print crypt('password','sa');"
verhttps://administratosphere.wordpress.com/2011/06/16/generating-passwords-using-crypt3/
Respuesta4
Lo siguiente funcionó para mí con Ubuntu 18.04 LTS:
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
Esto puede requerir primero la instalación makepasswd
usando(en Ubuntu o Debian; google para otras distribuciones):
sudo apt install makepasswd