Como alterar a senha usando o usermod?


10

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?


a melhor resposta está aqui: askubuntu.com/a/80447/55435 , nota para a verificação dos comentários bem
ryenus

Respostas:


17

O usermod -psinalizador espera que os dados já sejam a senha em um formato criptografado.

Use openssl passwdpara gerar os dados criptografados ou faça o seguinte:

usermod -p `openssl passwd` (USERNAME)

openssl passwdespera uma senha de 0 a 10 caracteres.
Onnonymous

6

O motivo pelo qual não funcionou é porque usermoda opção -p espera que a senha já esteja criptografada.

Na usermodpá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 passwdobter mais informações sobre configuração, por exemplo, tempo de expiração.

Boa sorte!


6

Você pode usar passwd:

sudo passwd USERNAME 

Você não precisa sudose você é superusuário


sudoexigir senha de root :)
Achu

@Achu: é necessária uma senha de usuário atual. Mas ele é superusuário.
Riad

O que superuserrepresenta?
Achu

3

A maneira de atribuir uma senha ao usermod (que é o que o OP realmente pediu) é usar uma crypt()senha com hash para o -pargumento.

SALT="Q9"
PLAINTEXT="secret_password"
HASH=$(perl -e "print crypt(${PLAINTEXT},${SALT})")
echo "Password Hash = \"${HASH}\""

Em seguida, use isso no seu usermod -pargumento de linha de comando:

usermod -p ${HASH} john

2

Um comando de linha única não interativo para alterar a senha de um usuário:

sudo usermod -p `perl -e "print crypt("new-password","Q4")"` john

usermod -prequer senha criptografada para funcionar. Observe new-passwordque ficará visível para usuários que podem listar os processos.


2

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}


1

Apenas digite

passwd

Dessa maneira, o usuário normal pode alterar sua própria senha sem privilégios de root, se você não tiver.

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.