Troubleshooting – Quebrando senha de root no RHEL >= 7 (Redhat Enterprise Linux)

Veja como quebrar de senha root no RHEL 7, 8, 9 e 10: passo a passo via Rescue Mode incluindo ajuste do SELinux.

Este artigo foi escrito em 2016 para o RHEL7 por ocasião do seu lançamento. No entanto, os procedimentos a seguir funcionam para qualquer RHEL superior a versão 7.

A entrada do System D no RHEL7 nos trouxe muitas mudanças importantes para a principal distribuição Linux corporativa.

A forma como quebramos a senha de root também mudou. A seguir veremos como realizar a quebra da senha em sistemas Red Hat 7 ou superior.

Ligando o sistema em Rescue Mode

O termo “Single Mode” ou Single User, usando no antigo System V, também mudaram. Por mais que alguns ainda utilizemos esses termos, o correto a se dizer é “Rescue“, Rescue Mode” ou “Rescue Target“. Isso por que o Redhat 7 nos traz Targets onde antes existiam Run Levels.

O primeiro passo é entrar em Rescue Mode. Para isso, ligue o sistema e fique atento ao prompt do Grub. Na tela de seleção de Kernel do Grub, use as teclas direcionamento para parar o contador. Selecione o Kernel que deseja usar para iniciar o sistema, mas não tecle Enter.

Nesse ponto, tecle a tecla “e” para editarmos um parâmetro nesse Kernel.

Agora localize a linha que inicia com “linux” (linux16 para RHEL7 legacy, linuxefi para RHEL7 UEFI ou somente linux para RHEL8 em diante). No final desta linha, insira “rd.break“.

A seguir, pressine as teclas “CTRL+X” (Teclas Control e X) para iniciar o sistema em Rescue Mode.

Quebrando a senha de root no target Rescue

O sistema ficará parado em um prompt em read only. Vamos remontar o “/” com leitura e escrita (rw):

mount -o remount,rw /

Agora vamos fazer um chroot pra dentro do /sysroot. Assim poderemos editar o sistema:

chroot /sysroot

Uma vez dentro do chroot, vamos remontar / novamente com rw:

mount -o remount,rw /

Já podemos alterar a senha. Utilize o comando passwd e defina a senha desejada.

SELinux

Quando o sistema está ligado em modo normal de operação, o SELinux gerencia automaticamente os labels dos arquivos. Com base nesses labels, os arquivos são protegidos e se mantém operacionais. Contudo, isso não ocorre quando estamos em Rescue Mode. Adicionalmente, quando trocamos senhas de usuários, o /etc/shadow é recriado e, consequentemente, fica sem o label do SELinux. Ao tentar logar no sistema, mesmo utilizando a senha correta, o sistema não permite o login.

É extremamente crítico que, se o seu SELinux estiver em modo Enforcing, você siga os passos abaixo.

Se o sistema possuir grandes quantidade de dados armazenados, execute:

load_policy -i
chcon -t shadow_t /etc/shadow

Isso aplicará o contexto/label default shadow_t ao /etc/shadow.

Mas, caso o sistema não possua grandes quantidade de dados armazenados, execute apenas:

touch /.autorelabel

Esse arquivo fará com que o SELinux percorra o sistema para reaplicar contextos/labels em todos arquivos mal configurados.

Eu recomendo o touch /.autorelabel, mas se o sistema possuir muitos dados armazenados, principalmente se forem muitos arquivos pequenos, o próximo boot pode demorar para inicializar.

Saindo do Rescue Mode

Agora saia do chroot com o comando exit. Saia do Rescue Mode também com o comando exit.

Ligue o sistema normalmente e tente logar com a nova senha.

Conclusão

O amigo leitor pode ser pego de surpresa ao tentar quebrar a senha de root no Redhat 7 (ou superior) levando em consideração o procedimento feito em sistemas com SysV. O System D com SELinux requer esses pormenores. Qualquer passo negligenciado resultará em insucesso ao trocar a senha do sistema.

Abraço!

5 - 0

Thank You For Your Vote!

Sorry You have Already Voted!

Rolar para cima