/ bin e / usr / bin definido para 400, maneira de corrigir sem disco ao vivo?

1

Temos um pequeno desastre em um sistema Centos7. Um bug em um script config recursivamente define /, / bin e / usr / bin, para 400 permissões. Isso significa que comandos básicos como chmod, mount e quase todo o resto são não-executáveis. Estou bastante confiante de que posso consertar isso inicializando de um live-usb, mas eu teria que fazer um. Além disso, a máquina danificada é o nosso roteador, então quando ela cai, perdemos nosso acesso à Internet.

Eu tenho outra caixa com binários linux x64 para chmod, bash, mount e o resto, existe alguma maneira inteligente de executá-los a partir de um usb (ou da rede ou qualquer outro) sem reiniciar?

    
por Charlweed 04.05.2017 / 05:26

1 resposta

0

No centos7 de 64 bits, o programa ld está localizado em /lib64/ld-2.17.so. Eu não teria encontrado a menos que eu tivesse outro sistema centos7 em execução. Eu usei o binário ld-2.17.so para executar / bin / chmod e fixed / bin, / usr / bin e / bin / chmod. Isso foi o suficiente para me permitir começar a corrigir todo o resto. No outro sistema centos, eu corri:

for dir in /* ; do getfacl -pR "$dir" > /root/"$dir"_acls.txt  ; done

Isso me deu referências sobre quais são as permissões corretas para minha distro. Eu copiei esses arquivos txt para o sistema danificado, e para bin, boot, dev, etc, e home, eu corri

for perm in /root/perms/*_acls.txt ; do setfacl --restore $perm ; done

Esta não foi uma correspondência exata nos arquivos, mas é muito melhor do que fazer todos os arquivos de uma só vez ou todos os arquivos individualmente.

    
por 05.05.2017 / 01:54