Como criptografar a senha de um novo usuário usando o comando useradd?

1

Eu gostaria de criar uma senha de login criptografada para um novo usuário usando o comando useradd 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 comando passwd [username] separadamente depois que o novo usuário tiver sido criado por useradd , mas, como eu disse, gostaria de saber como criar uma senha criptografada por meio do useradd comando.

    
por Charlie D 01.04.2016 / 03:14

3 respostas

1

Você pode ignorar todo o problema de administração do usuário criado pelo administrador criando o ID do usuário e, em seguida, usando 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.
    
por waltinator 01.04.2016 / 06:01
1

Você poderia usar o Perl:

perl -e "print crypt(\"foo\", \"\\$$(</dev/urandom tr -dc 'a-zA-Z0-9' | head -c 32)\$\")"

Ou Python com o módulo crypt :

python -c "import crypt; print crypt.crypt(\"foo\", \"\\$$(</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 sal de criptografia, neste caso, uma cadeia aleatória de 32 caracteres.

Em conjunto com useradd :

useradd [...] -p"$(perl -e "print crypt(\"foo\", \"\\$$(</dev/urandom tr -dc 'a-zA-Z0-9' | head -c 32)\$\")")" [...]

Ou:

useradd [...] -p"$(python -c "import crypt; print crypt.crypt(\"foo\", \"\\$$(</dev/urandom tr -dc 'a-zA-Z0-9' | head -c 32)\$\")")" [...]
    
por kos 01.04.2016 / 11:39
1

Como o passwd não suporta --stdin no Ubuntu, você pode tentar isto:

perl -e "print crypt('password','sa');"

veja link

    
por wbrmx 01.04.2016 / 14:25