Eu me deparei com esse problema ao tentar criar novos usuários de FTP para vsftpd. Ao criar um novo usuário com o seguinte comando e tentar fazer login no FileZilla, eu receberia um erro de "senha incorreta".
useradd f -p pass -d /home/f -s /bin/false
Depois de fazer isso, / etc / shadow contém
f:pass:1111:0:99:2:::
Depois de executar o seguinte comando e fornecer o mesmo passe
passwd f
/ etc / shadow contém
f:$1$U1c5vVwg$x5TVDDDmhi0a7RWFer6Jn1:1111:0:99:2:::
Parece que a criptografia acontece quando eu executo o passwd , mas não quando o useradd
É importante ressaltar que, depois de fazer isso, sou capaz de fazer login no FTP com as mesmas credenciais.
Estou usando o CentOS 5.11, vsftpd para FTP e FileZilla para acesso FTP
/ var / log / secure contém:
Dec 17 useradd[644]: new group: name=f, GID=511
Dec 17 useradd[644]: new user: name=f, UID=511, GID=511, home=/home/f, shell=/bin/false
Por que não funciona quando passo -p pass
para useradd? O que preciso fazer para que funcione?
/var/log/secure
$1$
indica que o MD5 está sendo usado . O MD5, embora não seja absolutamente terrível para senhas, está bastante fraco hoje em dia. É uma pergunta totalmente separada, mas eu recomendaria que você considerasse migrar para uma função hash mais forte./etc/shadow
não são criptografadas, mas com hash #Respostas:
Isso está funcionando como pretendido. Se você deseja definir uma senha usando o
useradd
comando, deve fornecer uma versão em hash da senhauseradd
.A cadeia de caracteres
pass
atende aos critérios de formato para o campo de senha com hash/etc/shadow
, mas nenhuma senha real faz hashes nessa cadeia. O resultado é que, para todos os efeitos, essa conta se comportará como uma senha, mas qualquer senha que você tentar usar para acessá-la será rejeitada por não ser a senha correta.Consulte
man useradd
ou a documentação do usuário :fonte
man
useradd :Você deve passar uma senha com hash para ele.
Não é uma senha de texto sem formatação.
fonte
useradd
espera que você passe o hash da senha, não a senha em si. Você pode usar a seguinte variação em seu comando para fornecer uma senha com hash aouseradd
comando:Para descobrir os métodos disponíveis, use:
Para evitar passar a senha na linha de comando, coloque a senha em um arquivo (usando um editor e não usando
echo
ou similar) e faça o seguinte:Isso passará a senha com hash na linha de comando, mas não a senha em texto sem formatação.
mkpasswd
vem com oexpect
pacote.fonte
passwd
para alterá-la para outra coisa ......