Sou super administrador de um servidor e gosto de alterar a senha de um usuário existente. Como eu posso fazer isso ?
eu tentei
usermod -p 'new-password' john
mas não funcionou?
Sou super administrador de um servidor e gosto de alterar a senha de um usuário existente. Como eu posso fazer isso ?
eu tentei
usermod -p 'new-password' john
mas não funcionou?
Respostas:
O usermod -p
sinalizador espera que os dados já sejam a senha em um formato criptografado.
Use openssl passwd
para gerar os dados criptografados ou faça o seguinte:
usermod -p `openssl passwd` (USERNAME)
openssl passwd
espera uma senha de 0 a 10 caracteres.
O motivo pelo qual não funcionou é porque usermod
a opção -p espera que a senha já esteja criptografada.
Na usermod
página do manual:
-p, --password PASSWORD
The encrypted password, as returned by crypt(3).
Definir uma senha dessa maneira não é recomendado.
Em vez disso, você deve usar passwd <username>
. Isso deve (as usermod
) ser feito como root (se você não estiver alterando a senha dos usuários atualmente conectados).
Para alterar a senha do usuário foo.
sudo passwd foo
Isso solicitará uma nova senha.
Consulte a página de manual para passwd
obter mais informações sobre configuração, por exemplo, tempo de expiração.
Boa sorte!
A maneira de atribuir uma senha ao usermod (que é o que o OP realmente pediu) é usar uma crypt()
senha com hash para o -p
argumento.
SALT="Q9"
PLAINTEXT="secret_password"
HASH=$(perl -e "print crypt(${PLAINTEXT},${SALT})")
echo "Password Hash = \"${HASH}\""
Em seguida, use isso no seu usermod -p
argumento de linha de comando:
usermod -p ${HASH} john
Algo que deve ser adicionado aqui é o seguinte. Este método:
sudo usermod -p perl -e "print crypt("new-password","Q4")"
john
significa que várias senhas muito semelhantes funcionarão. Por exemplo, no servidor Oracle Linux 7.4 e na área de trabalho Ubuntu 17.10, considere:
sudo usermod -p perl -e "print crypt("borkling","Q4")"
orabuntu
Agora, se alguém fizer:
su - orabuntu
você descobrirá que QUALQUER senha que começa com "borkling" funcionará, por exemplo
borkling88 borklingjars
embora "borkline" não funcione, porque, como afirmado anteriormente, qualquer senha que tenha "borkling" como prefixo também funcionará quando a senha for definida dessa maneira.
Uma maneira de fazer com que o afaik não tenha esse efeito colateral indesejado é o seguinte:
(o crédito para isso vai para "Sandeep" aqui:
/programming/2150882/how-to-automatically-add-user-account-and-password-with-a-bash-script )
No Linux RedHaty: (omita a roda "-G" se você não deseja que o sudo privs seja concedido)
sudo useradd -m -p $ (openssl passwd -1 $ {PASSWORD}) -s / bin / bash -G wheel $ {USERNAME}
Nos Debiany Linuxes (omita o -G sudo se você não quiser o sudo privs):
sudo useradd -m -p $ (openssl passwd -1 $ {PASSWORD}) -s / bin / bash -G sudo $ {USERNAME}