useradd do Linux e senha da linha de comando?

1

Com base na documentação aqui:

link

Estou tentando criar um novo usuário com um diretório inicial padrão no Ubuntu 17.10 e especificar a senha:

useradd john -m -p mypassword

O usuário é criado muito bem, mas se eu tentar ao lado de SSH para a máquina usando o novo usuário com a senha especificada (mypassword) eu recebo:

$ ssh john@my-host
john@my-host's password: 
Permission denied, please try again.
john@my-host's password: 

Então, por que não funciona com a senha que usei ao criar o usuário?

Com base na resposta abaixo, useradd requer uma senha criptografada. Na linha de comando, posso fazer:

$ echo -n testpass | makepasswd --crypt-md5 --clearfrom -
testpass   $1$eaXbTWAK$8flrqGzhmtWPjzRcrxWBf/

Mas como eu passo isso para useradd , para tornar possível fazer tudo em uma linha?

    
por u123 18.11.2017 / 17:19

2 respostas

3

Na página adduser(8) man:

-p, --password PASSWORD

The encrypted password, as returned by crypt(3).

Especificar a senha como texto simples não funcionará.

    
por 18.11.2017 / 17:22
0

Você pode combinar vários comandos usando a construção $ (some-cm). Isso fará com que o bash avalie primeiro o parêntese e use o valor de retorno em seu lugar:

echo foo $(echo bar)

irá avaliar o segundo comando primeiro e depois avaliará o primeiro comando. Você pode fazer isso primeiro para gerar sua senha e depois colocá-la no comando adduser.

Ou você usa o comando encadeamento: user=john; useradd -m $user && passwd $user . Isso ainda solicitará a senha.

    
por 18.11.2017 / 20:17