Imagine a seguinte situação: você foi contratado para trabalhar, ou prestar serviços, em uma empresa e o dono lhe informa que o antigo analista de redes foi embora e, por falta de ética profissional,
não deixou documentado a senha de acesso aos servidores. E agora?
Bom, segue abaixo uma dica sobre como resetar a senha do usuário root. Vou mostra no Fedora (família Red Hat) e no Debian (e seus derivados). Mãos na nassa!
Sistemas baseados em Red Hat
Estou utilizando o Fedora 20, a versão recente do sistema operacional, mas você pode testar em outras versões, inclusive no CentOS.
Reinicie a máquina e no menu do GRUB, serão apresentadas informações do kernel, ou kernels utilizados, e uma opção de recuperação do sistema:
Mas abaixo tem algumas opções para editar a inicialização ou entrar no modo de linha de comando. Deixe selecionada a primeira opção de kernel e pressione a tecla "e" para entrar no modo de edição.
Utilizando as setas de navegação em seu teclado, deça até a linha onde inicia com:
linux /vmlinuz...
Ainda nesta linha, direcione o cursor onde está escrito
ro (read only). Mude para:
rw init=/sysroot/bin/sh
Veja como ficou na imagem abaixo:
Esta alteração vai permitir que a partição root seja montada com permissão de leitura e gravação no modo single do sistema. Em seguida, pressione a combinação de teclas
Ctrl+x para iniciar o sistema com essa nova entrada no
init.
Após a carga do sistema, observe que o prompt de comando está com os caracteres
:/#
Execute agora o comando:
# chroot /sysroot
O comando chroot muda o diretório root para o processo atual bem como os seus processos filhos. Ou seja, a partição root não será mais / e sim /sysroot. Digite o comando e pressione Enter.
Agora, basta executar o comando:
# passwd root
E informar a nova senha, confirmando-a em seguida. Se você tentar inserir uma senha muito simples, será questionado a respeito da mesma. Basta continuar com a confirmação da senha ou utilizar
uma senha forte, o que é mais recomendável.
Em seguida, execute o comando:
# touch /.autorelabel
O comando verifica os sistemas de arquivos que montados em seu próprio
labeling comparando o contexto dos arquivos com o do sistema à procura de alguma alteração.
Agora, saia do
chroot com o comando:
# exit
E reinicie o sistema para testar a alteração.
Testei no Fedora e no CentOS com êxito.
Sistemas baseados em Debian
Pelo método anterior, no Debian, apresentou alguns problemas. Por isso, resolvi utilizar o método sugerido abaixo.
Na tela do GRUB, selecione o kernel desejado e pressione a tecla:
e
Vá para a linha onde tem no início:
linux /vmlinuz...
E onde está localizado a palavra
ro, altere para:
rw init=/bin/bash
Veja na figura abaixo:
Em seguida, pressione a tecla
F10 e você será direcionado para uma outra tela.
Agora, execute os comandos abaixo para que a partição (/) seja montada como leitura e escrita:
# mount -o remount,rw /
# mount -a
# mount
Feito isso, vamos editar o arquivo
/etc/shadow e excluir a senha do usuário root:
# vi /etc/shadow
Na linha onde está o usuário root (
toot:$1$fmdlkdjslj¨5$rdgd:14693:0:99999:7:::), apague tudo o que estiver entre o primeiro caractere de dois pontos ":" e o
segundo que refere-se a senha criptografada.
Veja a linha antes de apagar a senha:
root:$1$fmdlkdjslj¨5$rdgd:14693:0:99999:7:::
Linha após excluir a senha:
root::14693:0:99999:7:::
Após a alteração do arquivo, salve-o e saia. Em seguida, execute os comandos abaixo:
# sync
# umount -a
# mount -o remount,ro /
Os comandos anteriores irão realizar uma sincronização dos arquivos em memória para o disco rígido, desmontar todas as partições montadas e montar novamente a partição (/) apenas como leitura.
A partir de agora, você deverá reiniciar a máquina e logar com o usuário root sem senha.
Depois de logado, execute o comando para inserir uma nova senha.:
# passwd root
Conclusão
Bom, foram mostrados dois métodos que utilizo com frequência neste tipo de situação.
Espero que tenham gostado e até o próximo artigo.