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

Ubuntu: испортил мой файл sudoers, как я могу это исправить?

Я редактировал свой /etc/sudoers файл и сохранил его, но там есть синтаксическая ошибка. Теперь я не могу sudo vim /etc/sudoers потому что sudo считает, что файл sudoers недействителен.

Как я могу это исправить?

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

Чтобы выйти из этой ситуации, либо загрузитесь в однопользовательском режиме и отредактируйте файл, либо загрузитесь с livecd и сделайте то же самое.

Загрузите систему в одиночный режим, а затем отредактируйте его.

Как отмечено в этом аналогичный вопрос на askubuntu, это вполне может сработать без перезагрузки в однопользовательском режиме:

pkexec visudo

Между прочим, если у вас есть пароль root, просто войдите с ним и верните его прежним.

chmod 0440 / и т. д. / sudoers

Это предотвратит загрузку в однопользовательском режиме или, что еще хуже, загрузку с livecd.

В моем случае я не мог позволить себе вывести сервер из строя.

Если у вас установлен Docker и ваш пользователь является членом docker группа, вы можете легко выйти из этого рассола (и некоторых других) без перезагрузки или чего-то еще:

  1. $ docker run -it --rm -v '/etc/:/root/host.etc/' debian bash
  2. apt-get update && apt-get install [vim|nano|whatever]
  3. cd ~/host.etc/
  4. Восстановите проблемные файлы
  5. exit