У нас небольшая авария в системе Centos7. Ошибка в скрипте конфигурации, рекурсивно устанавливающем /, / bin и / usr / bin на 400 разрешений. Это означает, что основные команды, такие как chmod, mount и почти все остальное, не могут быть выполнены. Я почти уверен, что смогу исправить это, загрузившись с живого USB-накопителя, но мне придется его сделать. Кроме того, поврежденная машина - это наш маршрутизатор, поэтому, когда он выходит из строя, мы теряем доступ в Интернет.
У меня есть еще одна коробка с двоичными файлами linux x64 для chmod, bash, mount и прочего, есть ли какой-нибудь умный способ выполнить их с USB (или сети или чего-то еще) без перезагрузки?
В 64-битной версии centos7 программа ld находится по адресу /lib64/ld-2.17.so. Я бы не нашел его, если бы у меня не работала другая система centos7. Я использовал двоичный файл ld-2.17.so для выполнения / bin / chmod и fixed / bin, / usr / bin и / bin / chmod. Этого было достаточно, чтобы я мог начать исправлять все остальное. В другой системе centos я запустил:
for dir in /* ; do getfacl -pR "$dir" > /root/"$dir"_acls.txt ; done
Это дало мне ссылки на правильные разрешения для моего дистрибутива. Я скопировал эти txt-файлы в поврежденную систему, и для bin, boot, dev и т. Д. И домой я запустил
for perm in /root/perms/*_acls.txt ; do setfacl --restore $perm ; done
Это не было точным совпадением в файлах, но это намного лучше, чем делать каждый файл сразу или каждый файл по отдельности.