
Gostaria de criar uma senha de login criptografada para um novo usuário ao usar o useradd
comando na CLI. Eu sei que usar a opção -p
me permitirá criar uma senha, mas usar essa opção não criptografa a senha. Também sei que posso criar uma senha criptografada usando o passwd [username]
comando separadamente após a criação do novo usuário através do useradd
, mas como falei, gostaria de saber como criar uma senha criptografada através do useradd
comando.
Responder1
Você poderia usar Perl:
perl -e "print crypt(\"foo\", \"\$6\$$(</dev/urandom tr -dc 'a-zA-Z0-9' | head -c 32)\$\")"
Ou Python com o crypt
módulo:
python -c "import crypt; print crypt.crypt(\"foo\", \"\$6\$$(</dev/urandom tr -dc 'a-zA-Z0-9' | head -c 32)\$\")"
foo
: a senha para criptografar$6
: o tipo de criptografia, neste caso SHA-512$(</dev/urandom tr -dc 'a-zA-Z0-9' | head -c 32)
: o salt de criptografia, neste caso uma sequência aleatória de 32 caracteres.
Em conjunção com useradd
:
useradd [...] -p"$(perl -e "print crypt(\"foo\", \"\$6\$$(</dev/urandom tr -dc 'a-zA-Z0-9' | head -c 32)\$\")")" [...]
Ou:
useradd [...] -p"$(python -c "import crypt; print crypt.crypt(\"foo\", \"\$6\$$(</dev/urandom tr -dc 'a-zA-Z0-9' | head -c 32)\$\")")" [...]
Responder2
Você pode pular todo o incômodo de administração de usuários com senha criada pelo administrador criando o ID do usuário e, em seguida, usando passwd --expire
-o. 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.
Responder3
Como o passwd não suporta --stdin no Ubuntu, você pode tentar o seguinte:
perl -e "print crypt('password','sa');"
verhttps://administratosphere.wordpress.com/2011/06/16/generating-passwords-using-crypt3/
Responder4
O seguinte funcionou para mim com 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
Isso pode exigir primeiro a instalação makepasswd
usando(no Ubuntu ou Debian; google para outras distros):
sudo apt install makepasswd