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

Сломал мой файл / etc / sudoers на amazon EC2

Я отредактировал свой экземпляр Linux Amazon EC2 с помощью vim / etc / sudoers и попытался добавить в список еще одну учетную запись. Теперь я понимаю, что это была ужасная ошибка. Я больше не могу использовать sudo из любой учетной записи (что означает, что я не могу снова редактировать файл), и у меня нет пароля учетной записи root. Что я могу сделать, чтобы это исправить?

Спасибо.

Надеюсь, вы используете корневой том EBS. Если так, решение не так уж и сложно.

По сути, вы присоединяете том EBS к другому экземпляру, вносите изменения и повторно подключаете его к исходному экземпляру:

  • Остановить (не завершать) исходный экземпляр
  • Отсоедините том EBS
  • Запустить еще один экземпляр
  • Присоедините текущий том EBS к новому экземпляру
  • SSH в новый экземпляр, смонтируйте том EBS и внесите необходимые изменения.
  • Отключите том EBS (например, umount -d /dev/xvdh или umount -d /dev/sdh)
  • Отсоедините том EBS от нового экземпляра и присоедините его как корневой том (например, /dev/sda1) старого экземпляра
  • Запустить старый экземпляр
  • Если все работает, закройте новый экземпляр

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

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

Это зависит от того, является ли это корневым устройством AMI или EBS.

Если это AMI, и у вас нет пароля root, и AMI не настраивает доступ root SSH, то вы ничего не можете сделать.

Если это корень EBS, вы можете его прервать и подключить том к другому экземпляру (как дополнительный диск, а не корень). Затем вы можете получить доступ к данным или исправить файл sudoers и запустить новый экземпляр, используя том.

даже если instance-store является корневым томом, вы можете просто присоединить этот корневой том в качестве вторичного тома в другом экземпляре (например, / dev / xvdh), смонтировать его в какую-либо папку и внести изменения в sudoers.

Вот что я сделал, чтобы решить эту проблему -

  1. Запустил такой же экземпляр Hardware Like (тот, который был испорчен).
  2. Остановите испорченный экземпляр.
  3. ssh - полная папка ubuntu (в которой были все необходимые файлы).
  4. Запустил сервер реплик и убедился, что все работает нормально (мы используем Mongo, Mysql, Tomcat и Java).
  5. После этого я отключил эластичный IP-адрес, использованный для испорченного экземпляра, и прикрепил его к экземпляру реплики.

Вуаля Теперь у вас есть новый работающий экземпляр с той же конфигурацией и IP.

Время заняло 30 мин.