Я редактировал свой /etc/sudoers
файл и сохранил его, но там есть синтаксическая ошибка. Теперь я не могу sudo vim /etc/sudoers
потому что sudo считает, что файл sudoers недействителен.
Как я могу это исправить?
Вы никогда не должны редактировать файл sudoers напрямую. Использовать visudo
- это защитит вас от этих синтаксических ошибок в будущем.
Чтобы выйти из этой ситуации, либо загрузитесь в однопользовательском режиме и отредактируйте файл, либо загрузитесь с livecd и сделайте то же самое.
Загрузите систему в одиночный режим, а затем отредактируйте его.
Как отмечено в этом аналогичный вопрос на askubuntu, это вполне может сработать без перезагрузки в однопользовательском режиме:
pkexec visudo
Между прочим, если у вас есть пароль root, просто войдите с ним и верните его прежним.
chmod 0440 / и т. д. / sudoers
Это предотвратит загрузку в однопользовательском режиме или, что еще хуже, загрузку с livecd.
В моем случае я не мог позволить себе вывести сервер из строя.
Если у вас установлен Docker и ваш пользователь является членом docker
группа, вы можете легко выйти из этого рассола (и некоторых других) без перезагрузки или чего-то еще:
$ docker run -it --rm -v '/etc/:/root/host.etc/' debian bash
apt-get update && apt-get install [vim|nano|whatever]
cd ~/host.etc/
exit