Iremos usar a distro Tiny Core de forma que o HD do sistema com senha desconhecida fique acessível como um segundo disco. Acessaremos o arquivo /etc/shadow que está dentro desse segundo disco e alteraremos a senha do seu usuário root.
Segue link para download da distro Tiny Core: Clique Aqui
Em um post anterior chegamos a falar sobre uma distro linux super-leve, a Tiny Core.
Trata-se de uma distro com apenas 16MB. Esse mínimo tamanho faz dessa distro uma facilitadora, pois ela inicia muito rápido e é ótima para backup de Sistemas que não inicializam, por exemplo.
Mas hoje, levando em consideração o que aprendemos com a série de artigos “Gerenciando Usuários no Linux” , iremos alterar a senha do usuário root, simulando um caso onde estamos em um ambiente novo e o ex-funcionário do setor de Ti foi embora para sempre e não nos deixou a senha para acesso ao servidor.
Obs.: Abaixo, na instalação do pacote lvm2 no Tiny Core, poderíamos usar comandos ao invés de janelas. Preferi usar GUI(interface gráfica) para facilitar um pouco mais. Se quiser usar apenas comandos para instalação use o tce-ab.
Recuperando a Senha do Usuário root
- Grave a distro Tiny Core em um pendrive ou mídia de CD.
Obs.: Há diversos tutoriais na internet a respeito. Nesse momento não é nosso intuito demonstrar essa etapa. - Insira o pendrive/CD e faça com que o servidor dê o boot por ele. Obs.: Há diversos tutoriais na internet a respeito. Nesse momento não é nosso intuito demonstrar essa etapa.
- Iniciado o servidor, o tiny core estará aberto e pronto para usarmos.
- A partição raiz do CentOS está em lvm. Por isso precisaremos de acesso a internet para instalar o pacote lvm2. Clique com direito na área de trabalho da Tiny Core vai em “System Tools –> Apps”.
- Se aparecer a caixa abaixo clique em yes/sim
- Clique em “Apps –> Cloud(Remote) –> Browse”
- Digite lvm na pesquisa e selecione o pacote “lvm2.tcz”; clique em “Go” para iniciar a instalação.
- Terminada a instalação, clique com direito na área de trabalho da Tiny Core vai em “Applications –> Terminal”.
- Digite no terminal “fdisk -l”. Nossa partição é a sda2. Eu identifiquei a partição por estar familiarizado com meu servidor. Se não estivesse poderia montar e vasculhar tanto a sda1 quanto sda2.
- No terminal, digite “sudo lvdisplay”
tc@box:~$ sudo lvdisplay --- Logical volume --- LV Path /dev/vg_centos65/lv_root LV Name lv_root VG Name vg_centos65 LV UUID WngoN0-SkDr-ZwDf-qo46-fM6y-s3LQ-uupr4y LV Write Access read/write LV Creation host, time centos65, 2019-06-13 12:55:03 +0000 LV Status NOT available LV Size <13.01 GiB Current LE 3330 Segments 1 Allocation inherit Read ahead sectors auto --- Logical volume --- LV Path /dev/vg_centos65/lv_swap LV Name lv_swap VG Name vg_centos65 LV UUID DcLMli-imwl-MWL3-IvV8-1Mer-Cd8z-EIOSCI LV Write Access read/write LV Creation host, time centos65, 2019-06-13 12:55:06 +0000 LV Status NOT available LV Size 1.50 GiB Current LE 384 Segments 1 Allocation inherit Read ahead sectors auto
Foram encontrados dois volumes lógicos. Observe em vermelho que eles estão indisponíveis(NOT Available).
- Nossa partição é a de 13.01 GB. Vamos deixá-la disponível usando “vgchange -ay”
tc@box:~$ sudo vgchange -ay 2 logical volume(s) in volume group "vg_centos65" now active
Pronto, os dois volumes agora estão ativos.
tc@box:~$ sudo lvdisplay --- Logical volume --- LV Path /dev/vg_centos65/lv_root LV Name lv_root VG Name vg_centos65 LV UUID WngoN0-SkDr-ZwDf-qo46-fM6y-s3LQ-uupr4y LV Write Access read/write LV Creation host, time centos65, 2019-06-13 12:55:03 +0000 LV Status available # open 0 LV Size <13.01 GiB Current LE 3330 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 251:0
- Criaremos uma pasta dentro de “/mnt” com o nome de nossoLVM. e montaremos a partição lvm nela. Preste atenção acima no caminho da lvm: /dev/vg_centos65/lv_rootCriação da pasta
tc@box:~$ mkdir /mnt/nossoLVM
Montagem,
tc@box:~$ sudo mount /dev/vg_centos65/lv_root /mnt/nossoLVM/
Conferindo
tc@box:~$ df -hP | grep nossoLVM /dev/vg_centos65/lv_root 12.7G 4.8G 7.2G 40% /mnt/nossoLVM
- É o arquivo “/mnt/nossoLVM/etc/shadow” que editaremos para alterar a senha do root do nosso servidor. Mas antes precisaremos criar uma senha criptografada. Iremos criar um usuário dentro do Tiny Core para servir como modelo. Crie o usuário teste com senha 1234
tc@box:~$ sudo adduser teste Changing password for teste New password: Bad password: too short Retype password: passwd: password for teste changed by root
- A senha do usuário teste está criptografada em /etc/shadow. Vamos direcionar a linha de teste em /etc/shadow para o arquivo senha.txt
tc@box:~$ sudo grep teste /etc/shadow > senha.txt
esse é o conteúdo do arquivo senha.txt que foi criado
tc@box:~$ cat senha.txt teste:$1$eBNae36N$VGQZf.rGGhaAq/sSs/jkj/:18340:0:99999:7:::
A senha 1234 que está em formato hash é a destacada em laranja. Precisaremos passar essa senha para o usuário root do nosso servidor que está no arquivo “/mnt/nossoLVM/etc/shadow”
- Dê permissão ao arquivo “/mnt/nossoLVM/etc/shadow” pois ele estará sem permissão de acesso nenhum, conforme destacado em laranja abaixo.
tc@box:~$ ls -l /mnt/nossoLVM/etc/shadow ---------- 1 root root 1849 Mar 18 20:48 /mnt/nossoLVM/etc/shadow
dando permissão
tc@box:~$ sudo chmod 007 /mnt/nossoLVM/etc/shadow
Verificando novamente
tc@box:~$ ls -l /mnt/nossoLVM/etc/shadow -------rwx 1 root root 1849 Mar 18 20:48 /mnt/nossoLVM/etc/shadow
- Use o terminal abra o arquivo senha.txt
tc@box:~$ editor senha.txt
Copie a senha $1$eBNae36N$VGQZf.rGGhaAq/sSs/jkj/
tecle a tecla esc no teclado para fechar o editor
Abra o arquivo
Apague a senha antiga do usuário root e cole a nova no lugar
Tecle ESC e clique em “Save” para salvar a alteração
- Prontinho, podemos retirar a mídia do Tiny Core, reiniciar nosso servidor para iniciar o CentOS e logar com root e senha 1234
- Após acessado, altere a senha do root para uma mais forte. Não iremos deixar 1234 né? 🙂
[root@centos65 ~]# passwd Mudando senha para o usuário root. Nova senha: Redigite a nova senha: passwd: todos os tokens de autenticações foram atualizados com sucesso.
Conclusão
Tiny Core é uma distro super leve e útil. Vimos aqui que podemos acessar rapidamente os arquivos de um disco e alterá-los.
É importante conhecer a função de cada arquivo de configuração do Linux. Com isso em mãos podemos, por exemplo, recuperar a senha root de um servidor, como feito acima nesse post.
Continua….
Até!
Link Facebook: https://www.facebook.com/gnulinuxbr
Link WhatsApp: https://chat.whatsapp.com/LYHbESy75Q0GiORiexXKF4
Link Telegram: https://t.me/gnulinux_brasil
YouTube: https://www.youtube.com/channel/UCwyFWDqE0v7SwpZenjmzxYQ