Categorias
Linux

Conserte senhas corrompidas com chroot

Se você é o administrador de sistema responsável por missões críticas em data centers ou se trabalha em casa, Live CDs são maravilhosos para ter em volta para quando você estiver com um problema. Se você gerencia para bagunçar alguma coisa, você pode iniciar de um Knoppix, Ubuntu, GRML ou um dos outros vários Live CDs, montar as partições do disco rígido e editar qualquer dois arquivos que necessitam de recuperação. Contudo, há algumas coisas que não podem ser corrigidas facilmente, porque elas precisam que você esteja no próprio sistema que precisa de correção.

A solução é usar o comando chroot (mudar root), que configura um ambiente de trabalho dentro de um diretório. Perceba que o root do nome se refere ao root do diretório e não ao usuário root (ou superusuário) embora o usuário root seja o único permitido a executar este comando. Chroot cria um sistema 'enjaulado' dentro do diretório especificado, um que não tem acesso ao restante do sistema e pensa que o diretório informado é o diretório root. Para corrigir uma senha, por exemplo, você deveria iniciar de um Live CD, montar o root do seu sistema de arquivos /mnt/tmp e fazer isto:

sudo -i
mount --bind /dev /mnt/tmp/dev
mount -t proc none /mnt/tmp/proc
chroot /mnt/bin/bash

A primeira linha é necessário para se tornar root no Ubuntu. As duas próximas tornam o /dev/ e o /proc diretórios disponíveis dentro do chroot, e a última entra no diretório que foi configurado executando um terminal Bash. Agora você pode executar passwd ou qualquer outro comando que precisar e encerrar com logout ou pressionando Ctrl-D para sair.