# Como recuperar a senha de root no Linux

Link: [https://www.alura.com.br/artigos/como-recuperar-senha-de-root-no-linux](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**](https://pt.wikipedia.org/wiki/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**](https://pt.wikipedia.org/wiki/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**](https://pt.wikipedia.org/wiki/GNU_GRUB), porém existem [outros](https://en.wikipedia.org/wiki/Comparison_of_boot_loaders).

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:

![](https://www.alura.com.br/artigos/assets/uploads/2017/10/image_1-3.png)

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:

![](https://www.alura.com.br/artigos/assets/uploads/2017/10/image_2-3.png)

Neste arquivo, o GRUB passa algumas informações (parâmetros) para o [**kernel**](https://pt.wikipedia.org/wiki/N%C3%BAcleo_(sistema_operacional)), 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:

![](https://www.alura.com.br/artigos/assets/uploads/2017/10/image_3-3.png)

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:

![](https://www.alura.com.br/artigos/assets/uploads/2017/10/image_4-2.png)

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**](https://pt.wikipedia.org/wiki/Shell_script), como o [**Bash**](https://pt.wikipedia.org/wiki/Bash), um shell muito comum para os sistemas Linux, que está localizado na pasta `bin`:

![](https://www.alura.com.br/artigos/assets/uploads/2017/10/image_5-3.png)

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:

![](https://www.alura.com.br/artigos/assets/uploads/2017/10/image_6-3.png)

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`

![](https://www.alura.com.br/artigos/assets/uploads/2017/10/image_7-3.png)

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`**:

![](https://www.alura.com.br/artigos/assets/uploads/2017/10/image_8-3.png)

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**](https://www.lifewire.com/how-to-use-the-init-command-in-linux-4066930), 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:

![](https://www.alura.com.br/artigos/assets/uploads/2017/10/image_9-2.png)

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):

![](https://www.alura.com.br/artigos/assets/uploads/2017/10/image_10-2.png)

Quando o computador reiniciar podemos usar essa nova senha para instalar o Docker:

![](https://www.alura.com.br/artigos/assets/uploads/2017/10/image_11-2.png)

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**](https://www.vivaolinux.com.br/artigo/GRUB-e-a-senha-de-root-como-atacar-e-proteger-seu-sistema?pagina=2) 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.