Tutorial: Como recuperar a senha de root Linux

Caso você tenha perdido a senha de root de seu equipamento Linux, siga esses passos para recuperá-la trocar a senha. Esses passos são válidos para todas as distribuições Linux (Debian, Ubuntu, Mandriva, Red Hat, etc)

Obs ¹: essa dica leva em consideração que você está utilizando o GRUB como gerenciador de boot. Os passos para o LILO são basicamente os mesmos, exceto pela parte referente à edição da linha de comando do Kernel.

Obs ²: Durante todo o processo, seu teclado estará levemente desconfigurado. Por isso, onde for necessário utilizar a tecla barra ( / ) tenha em mente que ela (provavelmente) estará no lugar da tecla dois-pontos ( ; ). Se preferir, utilize a barra do teclado numérico, junto da tecla NumLock.

1) Reinicie o computador. Quando aparecer o menu do GRUB interrompa o boot, pressionando uma das setas do teclado.

2) Selecione a entrada normalmente utilizada e pressione a tecla "e". Entraremos no modo de edição desta entrada.

3) Selecione a linha que começa com a palavra kernel e pressione a tecla "e" novamente. Vamos agora entrar no modo de edição desta linha específica.



4) Insira o seguinte texto no final da linha: init=/bin/bash (lembre-se do que foi dito sobre o teclado). Ao terminar, deverá estar semelhante a imagem abaixo. Pressione Enter para voltar à tela anterior.


5) Pressione "b" para iniciar o boot. O processo será bem rápido, e o sistema estará com todos os serviços
 parados (inclusive a rede) e com os sistemas de arquivos montados como comente leitura.


6) Aqui cabe uma curiosidade: o comando mount exibe o sistema de arquivos raiz montado com permissão de escrita, porém ao tentar trocar a senha do root (ou efetuar qualquer outra operação de escrita) a operação irá falhar (note as mensagens de erro passwd: Authentication token lock busy e passwd: password unchanged).



Consultando o arquivo /proc/mounts, vemos que o sistema de arquivos raiz (o / ) na verdade está montado como somente leitura.

A razão disso é que o arquivo que contém o status das partições montadas fica em /etc/mtab. Quando a partição é montada como somente leitura esse arquivo fica impossibilitado de ser alterado, ficando com uma informação incorreta. De qualquer forma, para remontar a partição em modo de escrita, basta executar o seguinte comando: mount / -o remount,rw (novamente, não se esqueça da barra ...).


Após isso o sistema de arquivos raiz estará montado com permissão de escrita, e podemos trocar a senha de root normalmente,  com o comando "passwd root". Digite e confirme a nova senha. Veja que o comando passwd agora exibe uma mensagem de sucesso na operação (password updated sucesssfully)


07) Por fim, antes de reiniciar o computador, é necessário sincronizar os dados no HD com o comando sync. A razão disso é que o Kernel (por razões de performance) não grava os dados no HD imediatamente. Ao invés disso, ele "atrasa" um pouco a gravação, colocando os dados em um buffer de memória,  na esperança de que apareçam mais dados e tudo possa ser armazenado em uma única operação de escrita. O comando sync força a escrita imediata dos dados do buffer no HD (normalmente antes de um restart ou desligamento isso é feito automaticamente pelo processo init, mas como o boot foi executado com o bash no lugar do init, é necessário fazer isso manualmente). Após o comando sync, basta reiniciar o computador com Ctrl + Alt + Del ou com o comando shutdown -nh now.