Redefinir a senha do servidor Linux EC2
Não foi possível fazer login no servidor ubuntu EC2 devido a um problema de permissão.
Problema: Meu servidor EC2 ubuntu tem um usuário (root e ubuntu) e eu uso para fazer login no ubuntu usando ssh. Por engano, mudei a propriedade do diretório inicial do Ubuntu para root e também revoguei todas as permissões do diretório para outro usuário. Portanto, o diretório inicial do usuário (Ubuntu) tem apenas permissão RWX para root e mais ninguém. Agora não consigo fazer o login usando SSH para ubuntu. Forneci o arquivo .pem, mas desta vez estou recebendo uma solicitação de senha independentemente do arquivo .pem. Parece que errei.
O que eu tentei:
- Tentei fazer login como root usando ssh (não permitido)
- Tentei fazer o login no Ubuntu usando ssh (pedindo senha porque o problema de permissão eu acredito)
- Tentei hackear. Estava executando o Wordpress, então coloquei o shell sobre o servidor usando o Admin. Eu tenho shell reverso, mas não consigo fazer o escalonamento de privilégios para obter root.
Eu realmente aprecio se você puder me ajudar a entrar no meu servidor / redefinir a senha / forma de entrar no AWS Dashboard / ou qualquer outra forma.
Respostas
Ups!
Esse tipo de coisa acontece, mas é uma boa lição ter mais cuidado com seu acesso. Se você perdeu completamente o acesso, as opções abertas para você quase certamente envolverão o desligamento da VM ... Você não pode se recuperar disso com 100% de tempo de atividade.
Se fosse um PC local, você poderia retirar o disco rígido, colocá-lo em outra máquina e redefinir a senha na outra máquina. Mesmo sendo uma máquina virtual, o princípio é semelhante. Existe uma solução para um problema semelhante aqui:https://stackoverflow.com/a/11776183/453851
O princípio básico é que a máquina virtual EC2 usa "volumes" como discos rígidos. Por meio do console AWS, você pode:
- desligue sua máquina virtual
- desligue o volume
- criar uma nova máquina virtual (com seu próprio volume)
- inicialize a nova VM
- anexar o volume antigo à nova VM (como um segundo volume)
Em seguida, faça login na nova VM e:
- monte o volume antigo (para
/mnt/) chrootno sistema de arquivos montado (chroot /mnt/ /bin/bash). Isso lhe dará uma linha de comando que se comporta como se estivesse executando dentro de sua VM antiga.- Altere qualquer senha que você quiser com
passwd - desligar
Finalmente, de volta ao console da AWS:
- retire o volume antigo
- Reanexá-lo à VM antiga
- inicialize a velha vm
- exclua completamente a nova VM (TENHA CUIDADO PARA EXCLUIR A CERTA)