Назад | Перейти на главную страницу

полный / etc / recovery из git

У меня есть сервер CentOS 6.9.

Полный /etc каталог находился под контролем версий.

Я случайно запустил "git rm -R". Сервер сразу перестал работать, у меня пропала сессия ssh.

Мне удалось подключить ip-консоль к серверу и загрузиться с USB с помощью live linux, я запустил 'git reset --hard'.

Теперь индекс / рабочий каталог чист. Я перезагрузил систему, но она по-прежнему не работает. он отвечает на пинг, но я все еще не могу подключиться к нему по ssh.

На IP-консоли я даже не могу войти в систему после ввода любого пользователя, и он снова запрашивает пользователя.

Из рекавери linux проверил ошибки в /var/log/boot.log - первая ошибка касается iptables-restore

error while loading shared libraries libip4tc.so.0 : cannot open shared object file: No such file or directory

Далее идет rsyslog.d

CONFIG ERROR: could not interpret master config file '/etc/rsyslog.conf'

Файл явно там, если я проверю из рекавери live linux. Я подозреваю некоторую проблему с разрешением, но на самом деле понятия не имею.

Любая помощь приветствуется. Спасибо.

Вероятно, неправильные права собственности и разрешения. Поскольку вы не отслеживали их, вам придется исправить их вручную для каждого файла.

Сам по себе git не отслеживает владение и права доступа к файлам. Это не то, для чего это нужно. Эти метаданные вообще не отслеживались и поэтому были потеряны.

Это то, что любят системы etckeeper для. Они оборачиваются вокруг мерзавца, чтобы /etc в управлении версиями, сохраняя при этом метаданные, которых нет в git, и при необходимости восстанавливая их. Чтобы этого не произошло в будущем, рассмотрите возможность использования etckeeper или аналогичного инструмента.

Вы также можете создать какие-то резервные копии. В настоящее время у вас нет никаких резервных копий, и это верный путь к катастрофе. Вам посчастливилось сбежать с такой небольшой потерей данных, как и у вас. В следующий раз тебе может не повезти.

Да, у вас есть проблема с разрешением и владением файлом. К сожалению git хранит только содержимое и исполняемый бит файла, поэтому разрешения на чтение и запись, права собственности пользователей и групп, а также списки управления доступом, если таковые имеются, теряются при восстановлении из git reset --hard. Этого более чем достаточно, чтобы сломать ваш хост, когда восстанавливается каталог / etc.

Лучшая надежда на восстановление - это полная резервная копия файловой системы, которая будет включать все права собственности на файлы и разрешения.

Если у вас их нет, вы можете попробовать восстановить права собственности и разрешения вручную, сравнив их с аналогичным хостом CentOS. Но переустановка ОС с нуля может оказаться менее трудоемкой. Сожалею.