Senha perdida para um usuário em um servidor Linux: como redefini-la?

17

Em um servidor, um usuário 16040 perdeu sua senha. Tenho senha para root, mas não tenho senha para o usuário 16040. Como posso redefinir a senha dele?

Com passwd 16040, o unix me pede a senha atual que eu não tenho. Existe um comando para redefinir a senha de um usuário sem a senha atual?

passwd 16040
Changing password for 16040.
Current password for [email protected]:
Catanzaro
fonte

Respostas:

24

Se você executar passwd 16040como root, não será solicitada a senha atual.

Depois de alterar a senha, considere a emissão chage -d 0 16040. Isso define a data da última alteração da senha no passado; supondo que as senhas estejam definidas para expirar em seu sistema, isso forçará o usuário a alterar sua senha após o login. Isso dá a chance de escolher uma senha conhecida apenas por eles.

Artur Szymczak
fonte
3

Você deve emitir passwd 16040como root ( sudo passwd 16040se o usuário estiver no arquivo sudoers) para alterar sua senha. Não solicitará o atual.

Ou, se você tiver acesso físico à caixa, poderá anexar init=/bin/bashcomo parâmetro do kernel para obter acesso root e emitir passwd 16040.

peperunas
fonte
3
Ter um prompt em comandos embutidos é bastante desconcertante e pode ser facilmente mal interpretado como parte do comando. Utilize apenas avisos entre aspas. Além disso, # >é bastante incomum e aqui >simplesmente convida a ser mal interpretado como parte do comando - a prática comum é usar um simples #para rootshell e $para não raiz.
Andreas Wiese
Você está certo, eu editei minha resposta por uma questão de clareza. Obrigado.
peperunas
1

Se você não conseguir fazer logon diretamente como raiz, tente

  • sudo /usr/bin/passwd 16040.
  • sudo -i e depois /usr/bin/passwd 16040

Estou assumindo que passwdestá em / usr / bin (você pode verificar com o comando which passwd)

Hastur
fonte
sudo bashpara iniciar um rootshell é (embora comum) sudoprática muito, muito ruim . É sudo -sou sudo -i(sem login ou shell de login, resp.). Isso até honra seu conjunto padrão de shell /etc/passwdsem ter que se preocupar com isso. Além disso, bashsem um caminho completo, é uma má ideia por si só, pois esse seria um dos primeiros binários falsos que um usuário mal-intencionado colocaria em algum lugar $PATH.
Andreas Wiese
Concordo com a especificação do caminho completo e o uso de sudo -i, e por isso modifiquei a resposta ... mas se você falar sobre segurança e a possibilidade de um troiano escondido no $PATHtalvez seja melhor evitar usá- sudo -slo, pois você adiciona pelo menos o $USER/bindiretório e todos os alias que você pode imaginar ... :-)
Hastur
Bom ponto, de fato, mas depende da sudoconfiguração: a configuração padrão fornecida com sudonão mantém a $HOMEvariável definida, assim você acabaria tendo seus próprios arquivos rc originados, e não $SUDO_USERos.
Andreas Wiese