Não consigo fazer login no usuário que acabei de criar usando useradd


1

Eu estou usando o Debian 8 e quando eu digito isso no Terminal:

sudo useradd -p pass test

Eu vejo isso em /etc/passwd:

test:x:1001:1001::/home/test:/bin/sh

No entanto isso acontece:

su test
Password: 
su: Authentication failure

Eu estou ficando louco?

Respostas:


1

A opção -p do useradd não é usado para definir senha em texto simples. Com -p você está definindo diretamente o que será armazenado /etc/shadow. Para definir a senha na linha de comando desta forma, você terá que gerar um hash primeiro, depois passá-lo para o useradd utilidade.

Exemplo:

Gerar hash de senha bar salgado com corda foo usando o programa openssl:

openssl passwd -1 -salt foo bar

isso vai produzir string $1$foo$te5SBM.7C25fFDu6bIRbX1. Se você passar para useradd (tenha cuidado para adicionar aspas simples para que não se expandam para variáveis!):

useradd -p '$1$foo$te5SBM.7C25fFDu6bIRbX1' test

Você deve poder logar como test com a senha bar.


Oh deus obrigado. Eu estava realmente perdendo com isso
Lawless Leopard

@LawlessLeopard também considera usar stackoverflow.com/a/2151149/6350644 quando a fase de configuração da senha não for exposta em algum lugar potencialmente público.
Marek Rost

A outra solução é simplesmente usar adduser em vez de?
JakeGould

1
@ JakeGould seria definitivamente, se você não se importa de definir a conta de forma interativa. Como a pergunta tem senha na linha de comando, eu supus que o pesquisador provavelmente queira usá-la como parte de alguma automação ou script. É por isso que eu sugeri dividir a geração de senha real e a criação do usuário.
Marek Rost

@MarekRost é exatamente seu para fins de script
Lawless Leopard
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.