Esquecer a senha de um servidor é uma situação que deve ser evitada a todo custo, afinal, isto pode gerar problemas sérios. Mas, como diz o ditado: “que atire a primeira pedra quem nunca passou por uma situação como esta”, que é ainda mais comum em ambientes de testes e estudos onde geralmente as boas práticas e técnicas de segurança são sempre colocadas em segundo plano.
Para alterar a senha de um sistema Linux você precisa, obrigatoriamente, ter acesso direto ao equipamento (computador ou servidor) onde está rodando o sistema para que você possa alterar alguns parâmetros em sua inicialização ou usar um cd/pendrive de recuperação. Abaixo estão alguns métodos para isso:
Usando o GRUB:
O GRUB (GRand Unified Bootloader) é um sistema gerenciador de boot (multi boot ou boot-loader ) presente na maioria dos sistemas Linux que é utilizado, normalmente, quando se deseja que um computador tenha dual booting (um mesmo computador rodando mais de um sistema operacional). O GRUB é invocado na inicialização da máquina, como pode ser observado na figura acima. Assim:
1 – Reinicie o sistema e na tela do GRUB tecle “e” sobre o sistema que deseja alterar a senha de acesso;
Se a tela do Grub não for exibida automaticamente, fique pressionando a tecla Shift assim que o sistema for iniciado / reinicializado. Assim, a tela do Grub deverá ser exibida, mesmo estando em uma máquina virtual.
2 – No final da linha do kernel insira o comando: init=/bin/bash
Update (2021): no Ubuntu 20.04, a instrução para edição do arquivo é: no final do arquivo, na linha que começa com “linux”, alterar o seu final, que contém algo como “ro quiet splash” ou “ro maybe-ubiquity”, para “rw init=/bin/bash” (sem aspas). Ao final, teclar Ctrl X para sair, alterar a senha com o comando passwd (passwd nome-do-user) e então reiniciar o sistema (exec /sbin/init).
3 – Tecle Ctrl-X para iniciar o sistema com o parâmetro inserido;
4 – Depois do boot você estará no bash, com o sistema montado em modo leitura e, por isso, você deve remontá-lo em modo de escrita usando o comando:
# mount -n -o remount,rw / ou somente # mount remount,rw /
5 – Para definir uma nova senha para o usuário, use o comando:
# passwd "nome-do-usuario"
*Exemplo: # passwd root
6 – Pronto! Reinicie o sistema com o comando # reboot -f
Usando o modo de recuperação do Ubuntu
Nas versões atuais do Ubuntu (como a 16 ou 17), você pode executar algumas funções administrativas, como alterar a senha de um usuário, usando o modo de recuperação (recovery mode). Assim:
1 – Reinicie o sistema e na tela do GRUB vá em opções avançadas. Selecione a opção recovery mode (da versão atual do seu kernel) e tecle enter para confirmar;
2 – Após o carregamento do sistema de recuperação, selecione a opção “root” e tecle enter;
3 – No terminal, já como root, use o comando abaixo para montar o sistema em modo de escrita:
# mount -o rw,remount /
4 – Para definir uma nova senha para o usuário desejado, use o comando:
passwd “user”
*Caso não saiba o nome do usuário, use o comando # ls /home ou # cat /etc/passwd para identificá-lo.
5 – Pronto! Reinicie o sistema teclando # reboot -f
Usando um LiveCD
Um LiveCD (ou um pendrive executável) contém um sistema operacional Linux completo que é executado diretamente do CD / Pendrive e carregado na memória RAM. Com ele você também pode alterar a senha do usuário usando o comando passwd. Assim:
1 – Ligue o equipamento (ou reinicie o sistema) e configure-o para que o boot acione a mídia de instalação. Você deve fazer esta configuração na BIOS do seu equipamento, geralmente teclando Delete, Esc, F2, F8 ou F10.
2 – Inicie o Linux do LiveCD (ou do pendrive) e monte a partição raíz do seu sistema principal, como por exemplo:
# mount /dev/sda1 /mnt
3 – Para definir uma nova senha para o usuário, use o comando:
# passwd --root "ponto-de-montagem" "nome-do-usuario"
*Exemplo: # passwd –root /mnt root
4 – Desmonte a partição com o comando abaixo e então e reinicie o sistema. Após esta reinicialização, você já poderá acessar o sistema com a nova senha cadastrada.
# umount "ponto-de-montagem"
*Com informações de: ArchLinux – Wiki – Reset lost root password, Linux Hint – How to reset passsword on Ubuntu 20.04.