
Preciso entrar no modo de recuperação da minha caixa redhat que está sendo executada remotamente em uma máquina virtual.
Eu uso o RedHat 5 Enterprise Edition de 64 bits.
Estou logado na caixa usando SSH. Posso reiniciar usando o comando restart, mas preciso saber se poderei fazer SSH para ele, já que estou usando-o remotamente e não consigo fazer login pela interface do usuário.
O verdadeiro problema é que eu fiz um chown -R $USER /
no diretório raiz.
Eu estava tentando isso como um teste sem perceber as consequências, para fazer algo funcionar, que de alguma forma não estava funcionando mesmo com o uso do sudo.
Eu matei no meio do caminho. Mas, por causa dessa estupidez, não posso usar o sudo.
Li que posso fazer algo no modo de recuperação, mas não entendo como entro no modo de recuperação remotamente. Não consigo reinstalar o Linux, essa não é uma opção possível.
Existe alguma maneira de recuperar minhas permissões de sudo?
Fazer isso não funciona no momento:
chown root:root /usr/bin/sudo
chown: changing ownership of `/usr/bin/sudo': Operation not permitted
sudo chown root:root /usr/bin/sudo
sudo: must be setuid root
Responder1
Você não pode usar o ssh no modo de recuperação, pois o ssh não estará em execução. Você precisa de uma maneira de consolar. Se esta for uma máquina virtual e você possuir o host, deverá haver alguma maneira de conectar-se ao host e entrar no console. Se este for um serviço como o AWS, você está sem sorte e precisa recuperá-lo de outra forma, como construir uma nova instância e desanexar o volume raiz da instância ruim e montá-lo na nova para corrigi-lo.
Responder2
Redhat usa Systemd para iniciar/interromper jobs.
Se você estiver no modo de resgate, ele usa os alvos rescue
ou emergency
.
Você precisa configurar o sshd (e suas dependências) para rodar também nesses níveis de execução (= alvos, na terminologia do systemd).
Aquivocê pode encontrar mais sobre o ajuste fino do systemd. Um pouco de chapéu vermelhodocumentostambém pode ser utilizável.
Responder3
O problema foi resolvido e esta questão pode ser encerrada. No entanto, não consegui fazer isso via ssh. Tive que desligar a instância na caixa virtual e reiniciá-la. Fazer isso via ssh permanece aberto para discussão.
Como resolver o problema reiniciando a instância rhel5:
1.Boot the system into single user mode (do this by pressing esc on the boot screen. you will get a terminal on the boot screen after doing this)
2.do chmod 0440 /etc/sudoers
Which should look like -r--r----- 1 root root 5882 Nov 19 18:03 /etc/sudoers
3.chown root:root /usr/bin/sudo
4.chmod 4111 /usr/bin/sudo
5.chmod 0440 /etc/sudoers
6.chmod 0770 /var/bin/sudo/$USERNAME (note: you may have to use /var/run/sudo/$USERNAME if /var/bin does not exist)
7.Reboot the machine in runlevel-5. (type init 5)
Isso irá configurar o root e resolverá o erro sudo