В каком бы каталоге вы ни находились, когда вы запускали chmod
, у него были разрешения для всех файлов и каталогов, которые начинаются с .
рекурсивно измененного.
Поскольку вся ваша система перестала работать после того, как вы запустили эту команду, я предполагаю, что вы находитесь в нетривиальном каталоге и вам удалось изменить разрешения для некоторых важных двоичных файлов.
В результате они больше не работают правильно, что сделало вашу систему непригодной для использования. Есть три способа оправиться от этого. Вам не понравится первый. Второй, вероятно, не вариант, учитывая ваш вопрос. И третий действительно раздражает, чтобы выполнить.
Прежде всего, я рекомендую удалить экземпляр EC2 и воссоздать его с нуля. Возможно, на этот раз воссоздайте свои ручные изменения с помощью инструмента Ca C, например Ansible, чтобы сделать это менее болезненным в будущем. :)
Если это не сработает, восстановите файловую систему из резервной копии или снимка. У вас есть эти ... верно? Ах, не беспокойся. Я был там раньше тоже. Прости за это.
Теперь перейдем к раздражающей опции. Возможно, вы сможете восстановить, остановив свой экземпляр EC2 и удалив диск EBS. Затем подготовьте новый экземпляр EC2 в тех же зонах доступности и , подключите к нему старый том диска в неиспользуемой точке монтирования. Включите экземпляр EC2, вставьте в него S SH, , смонтируйте старую файловую систему и вручную восстановите разрешения, рекурсивно измененные с помощью chmod
. После этого вы сможете остановить этот экземпляр, добавить диск обратно в исходный экземпляр, включить его снова и восстановить его состояние.
Если вы изменили массивное дерево каталогов, например /etc/
, то вы, вероятно, в очень грубой форме. Возможно невосстановим при любом рациональном усилии для сервера Linux. Тем не менее, еще одно потенциальное решение, которое вы можете изучить, - это использование ch root.
Следуйте моим инструкциям выше, чтобы смонтировать старую файловую систему на новом экземпляре EC2. Затем смонтируйте файловую систему в пространство новой файловой системы и запустите chroot /mnt/old/disk/location
. Если вам удастся перейти в собственную файловую систему, то можно надеяться, что вы сможете автоматически восстановиться, используя apt-get
для переустановки ваших пакетов. apt-get --reinstall install
. После этого просто exit
сеанс chroot
и подключите диск к старому инстансу EC2 и посмотрите, куда это вас приведет.
Дайте мне знать, если вам понадобится дополнительная помощь. Мне раньше не приходилось специально восстанавливаться из этой ситуации, но я восстановился после уничтожения root разделов в Linux файловых системах в EC2, используя этот процесс ранее.