Skip to main content

Recuperando a senha do root no Linux

Um imprevisto acontece e você esqueceu a senha do usuário root do seu servidor principal. Nenhum outro meio de acessar o SO, todo sistema está atualizado e 100% seguro contra algum tipo de invasão que você possa fazer e seja mais simples que uma formatação.

Espera um pouco, 100% seguro? sabemos que isso não existe não é? Ainda mais se temos acesso físico a este servidor (ou um kvm-ip que na teoria seria a mesma coisa).

Temos aquele método manjado com algum live-cd. Bootar a máquina, ver em qual partição do HD fica montada a partição “/”, depois montamos ela em algum lugar como por exemplo:

mount /dev/sda3 /mnt/barra

Agora, com o chroot, alteramos temporariamente o diretório base do sistema:

chroot /mnt/barra

Se tudo ocorreu bem, agora você só precisa dar o comando passwd para alterar a senha e reiniciar o sistema.

Claro que nem tudo são flores e algo pode dar errado. Hoje tentei esta solução com um RedHat Enterprise e a coisa não foi tão simples, bom, na verdade foi, mas de outra forma…

Tentando resolver pela maneira acima, recebia um erro do chroot, e como achar outra solução era mais rápido do que tentar resolver aquilo, optei pelo método mais prático. Segue ele:

Durante o boot, quando caímos na tela do Grub, aperte “e” sobre a versão do kernel que você deseja, para entrar no modo de edição, ali terão algumas opções, entre elas uma mais ou menos assim:

kernel /boot/vmlinuz-xxxxx ro root=LABEL=/ ...

Vamos deixá-la assim:

kernel /boot/vmlinuz-xxxxx ro root=LABEL=/ single

Grave e aberte “b” (confirme no Grub se é este comando mesmo, afinal as coisas podem mudar…). Assim você estará entrando no kernel em algo parecido com um modo de manutenção.

Quando o console estiver disponível, digite passwd e altere a senha.

Muito simples…

Agora você já sabe porque os servidores devem estar em salas trancadas onde poucos podem ter acesso físico.