sexta-feira, 22 de janeiro de 2010

Esqueci minha senha de root, e agora?!

Esse título é uma das frases que ouvi ontem. Não foi a primeira vez, por isso pude calmamente apenas responder: "não se preocupe, resolvemos isso em um momento". Vamos mostrar como isso pode ser resolvido de forma simples e clara. Mas... Isso implica que o sistema dessa pessoa é falho ou inseguro?

Segurança de sistemas

A segurança é crucial para um sistema que tem dados importantes. Nenhum sistema é infalível. Alguns sistemas têm falhas demais; outros, são excelentes. Recuperar uma senha perdida ou poder modificá-la, sem o consentimento do dono do sistema, seria uma falha de segurança. A questão é como garantir que é o dono do sistema que estará realizando a operação?

Todo sistema Unix/Linux é extremamente seguro se bem utilizado. Mas quando existe contato físico com a máquina, a coisa muda: não há sistema que segure uma pessoa, com bons conhecimentos de computação, de fazer quase qualquer coisa. Contato físico, para computadores sem quaisquer proteções além das que vêm originalmente com as distribuições mais usadas, significa segurança nula.

Modo mais simples (GRUB)

Este método trata-se de botinar bootar o sistema em /bin/bash. Se isso for feito com sucesso, você terá controle total sobre o sistema (se tiver conhecimento para domar o sistema). Este foi o método que utilizei mais cedo para modificar a senha de administrador de meu colega.

Primeiramente, no grub, edite (teclando 'e') a entrada usual do sistema operacional, adicionando à linha "kernel" desta entrada o seguinte:

init=/bin/bash

Após isso, digite 'b' para bootar nesta opção e espere. O sistema será carregado em tempo recorde. Isso porque praticamente nada foi iniciado. Monte o dispositivo que contem seu sistema operacional. Use o fdisk para poder identificá-lo. Supondo que este dispositivo seja o /dev/sda1, monte-o:

mount /dev/sda1 /mnt

Verifique se este é o dispositivo correto. Acesse-o como se ele fosse uma pasta /mnt: este será o caminho representativo do dispositivo. Como você gostaria de realizar alterações neste dispositivo, caso seja necessário o remonte com a possibilidade de escrever e ler,

mount -o remount,rw /dev/sda1 /mnt

Vá novamente até o disposuitivo. Para facilitar sua vida, torne /mnt como seu diretório raiz no momento:

chroot /mnt

Agora é como se você fosse o root. Quer modificar sua senha? Basta executar

passwd

Forneça sua nova senha e está feito. Note como é simples realizar todo este procedimento. Se você quiser sacanear seu colega que trabalha na mesa ao lado, você pode realizá-lo sem problemas. Mas você não faz isso, porque você é um usuário sério de Linux.... e em geral é fácil descobrir quem o fez : )

Finalizando...

Dependendo da distribuição, alguns detalhes podem mudar. Já realizei este procedimento em algumas distribuições (Fedora, Ubuntu e, mais cedo, OpenSuse). Para ver outras maneiras de realizar este mesmo procedimento, apenas google " + reseting root password". Em algumas distribuições, é suficiente escrever "single" em vez de "/bin/bash". Em outras não: isso leva o usuário a um prompt que pede a senha do root (antiga) e, portanto, nada foi resolvido.

Espero ter ajudado qualquer um que tenha precisado disso.





3 comentários:

Gabriel Martins disse...

Nossa, realmente ajuda bastante quem esqueceu sua senha, mas espero que nenhum "espertinho" leia esse post pra brincar no trabalho. =P

Thiago S. Mosqueiro disse...

Esse é o perigo que corremos : )Para isso, é bom colocar aquelas senhas de bios, assim fica mais complicado quebrar.

Anônimo disse...

Mude o nome para "Como hackear o linux do seu amigo" (: Artigo foda