Невозможно получить доступ к ec2 после chmod -R 777 в root - PullRequest
1 голос
/ 27 марта 2020

Я случайно запустил "sudo chmod -R 777 ./" на моем экземпляре Ubuntu ec2 AWS. После этого он выгнал меня, и я больше не могу подключиться к экземпляру, ни через FTP, ни через S SH. У вас есть какой-нибудь совет для меня, как я могу восстановить свой экземпляр?

Лучший Джон

1 Ответ

2 голосов
/ 28 марта 2020

В каком бы каталоге вы ни находились, когда вы запускали 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, используя этот процесс ранее.

...