Como recuperar a senha de root no Linux
Link: https://www.alura.com.br/artigos/como-recuperar-senha-de-root-no-linux
Existem algumas maneiras de se recuperar a senha do usuário administrador (ou do super usuário) no Linux. Uma muito comum é alterar o modo que o sistema inicia, ou seja, quando realiza o boot. Dessa forma, acessamos o sistema como superusuário e alterar a senha.
Para isso, precisamos antes entender melhor o que seria o boot!
Entendendo o boot
Boot nada mais é do que o momento em que sua máquina está sendo ligada. Nesse momento, um programa chamado BIOS carrega algumas informações sobre o hardware do computador e o checa. Após esse processo ela chama o gerenciador de boot (boot loader) que carrega o sistema operacional.
Existem diversos gerenciadores disponíveis. No caso do Linux, esse gerenciador mais comum é o GRUB, porém existem outros.
Utilizando o GRUB nós conseguimos acessar o sistema como superusuário executar alguns comando, como trocar a senhas de usuários.
Mas como consigo acessar o GRUB?
Acessando o GRUB
Conseguimos acessar o GRUB no momento em que a máquina está ligando. Basta apertar a tecla Esc, ou Shift. Após um tempo, uma tela parecida com está deve aparecer:
Queremos falar para o GRUB que desejamos acessar o sistema como usuário administrador, dessa forma conseguimos modificar a senha.
Para dizer isso ao GRUB, temos que editar uma linha em sua configuração. Logo, pressionamos e
(edit) para editar essas informações:
Neste arquivo, o GRUB passa algumas informações (parâmetros) para o kernel, isto é, o núcleo do sistema operacional. Algumas dessas informações são: o sistemas de arquivos do root, o tipo de montagem de uma partição, entre outros.
Queremos entrar como super usuário no momento em que o Linux é carregado. Logo, vamos até a linha linux
para colocar essa configuração:
Essa linha nos mostra quando o boot começar.
O GRUB tentará carregar o arquivo do kernel que está em /boot/vmlinuz-4.8.0-36-generic
como usuário root
(super usuário), em modo de leitura (ro
, read only), sem escrever na tela (quiet
), apresentando uma tela de carregamento (splash
) e o modo gráfico ($vt_randoff
).
Mas eu quero poder alterar a senha do meu usuário quando o sistema iniciar. Isto é, quero poder escrever as configurações, então vamos alterar a opção ro
(read only) para rw
(read and write).
O sistema será acessado via o terminal. Então podemos retirar essas opções que mostram a tela de carregamento e o modo gráfico:
Bem, vamos acessar o sistema pelo terminal… Mas qual terminal?
Precisamos dizer para o GRUB iniciar um terminal assim que o sistema carregar, dessa forma conseguiremos realizar as alterações.
Para isso falaremos para ele iniciar (init
) um Shell, como o Bash, um shell muito comum para os sistemas Linux, que está localizado na pasta bin
:
Pronto! Configurações realizadas! Vamos dizer para o sistema iniciar com essas configurações. Para isso nós pressionamos Ctrl + x
ou simplesmente F10
.
O sistema irá iniciar com essas configurações em um terminal já logado como super usuário:
Agora resta apenas alterar a senha do usuário.
No meu caso vou alterar a senha do usuário administrador yuri
, então posso dizer para o terminal: "Por favor, altere a senha (passwd
) do usuário yuri
":
passwd yuri
Vamos informar a nova senha e pronto! Vamos reiniciar o computador para instalar nosso programa. Já que vamos reiniciar a máquina podemos utilizar o comando reboot
:
Hum… Deu um erro, não conseguimos reiniciar o computador. :(
Quando estamos como monousuário no GRUB, não conseguimos reiniciar o computador com esses comando como reboot
.
Então, como podemos reiniciar nosso computador?
Bem, podemos desligá-lo da energia e ligá-lo novamente. Ou, podemos utilizar outro comando.
Existe um comando chamado init
. Com este comando conseguimos mudar o nível de execução do sistema. Isto é, podemos desligá-lo, reiniciá-lo, entre outras coisas.
Cada nível possui um código, como por exemplo o nível 6, que reinicia o sistema.
Já que queremos reiniciar o sistema, vamos falar para o init
fazer isso para a gente:
Humm… outro erro. O sistema não conseguiu se comunicar com o comando desta forma. Vamos tentar passar o caminho até o local onde o comando está localizado para conseguir executá-lo.
Queremos executar (exec
) o comando init
, que está localizado na pasta /sbin/init
, passando como parâmetro o nível 6 (reiniciar):
Quando o computador reiniciar podemos usar essa nova senha para instalar o Docker:
Funcionou! Conseguimos alterar a senha com sucesso.
Para saber mais
Neste caso, eu utilizei o GRUB para mudar a senha do usuário administrador do sistema, mas poderia ter usado para modificar a senha do superusuário (root).
Essas mudanças feitas no GRUB são temporárias. Isto é, só valem na vez que foram configuradas no boot. Caso queira que as mudanças sejam permanentes é necessário alterar o arquivo do GRUB.
Esse é apenas um dos muitos jeitos de recuperar a senha do usuário administrador ou do usuário root no Linux. Além desse, outro muito utilizado é usando um pendrive inicializável com um sistema operacional. Dessa forma conseguimos montar uma partição e utilizá-la para alterar as senhas.
Veja que conseguimos acessar o sistema como root apenas com uma configuração no gerenciador de boot. Isso pode ser muito perigoso caso alguém com más intenções tenha acesso a máquina. Por isso existem algumas formas de proteger o GRUB desse tipo de ataque.
Nós acessamos o sistema como super usuário, por isso, cuidado! Caso não tenha certeza do que um comando faz, não o execute.
No Comments