Вопрос: Исправить поврежденный файл sudoers [duplicate]


Возможный дубликат:
Ubuntu: borked мой файл sudoers, как я могу его исправить? 

Описание проблемы:

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

$ sudo nano /etc/sudoers
>>> /etc/sudoers: syntax error near line 39 <<<
sudo: parse error in /etc/sudoers near line 39
sudo: no valid sudoers sources found, quitting

Я нашел несколько решений, говорящих, что я должен загрузиться в режим восстановления (например, тот, который приведен ниже), чего я, очевидно, хотел бы избежать.
Ubuntu: borked мой файл sudoers, как я могу его исправить?

Вопросов:

-А есть ли другие способы исправить это, не перезагружая ubuntu?
-Если так легко заблокировать себя из sudo при изменении файла sudoers (каждый может сделать опечатку), почему не является файлом sudoers, который читается из памяти, а не напрямую? Была бы команда (например, sudo-load), которая бы убедилась, что синтаксис в порядке, прежде чем загружать конфигурацию в память, тем самым избегая подобных проблем.

Решения:
Кажется, есть два способа восстановить его:
Если у вас есть пароль root, вы можете просто выдать «su», а затем отредактировать файл
если у вас нет пароля root, который необходимо перезапустить в однопользовательском режиме


7
2018-03-24 08:27


Источник


Этот ответ по вопросу, который вы связали, рассказывает вам все, что вам нужно знать. Даже в файле / etc / sudoers есть комментарий, предупреждающий вас всегда использовать visudo для его редактирования. - ThatGraemeGuy
поэтому я всегда устанавливаю пароль root сразу после установки. Сгорел таким же образом, на удаленной машине, к которой у меня не было доступа. - Sirex
С помощью pkexec $EDITOR еще лучше, см. askubuntu.com/questions/73864/... - NeilenMarais


Ответы:


Нет, вам нужно перезагрузиться или войти в систему под учетной записью root, если вы разрешите вход в систему root.

Именно по этой причине вы всегда должны использовать visudo при изменении файла sudoers. visudo проверит синтаксис файла sudo перед его сохранением, защищая вас от этой конкретной проблемы (но не от написания файла sudoers, который запрещает вам запускать sudo!)

Обратите внимание, что sudoers обычно настроены так, чтобы их нельзя было записывать даже root на Ubuntu:

-r--r----- 1 root root 556 2010-04-18 15:05 sudoers

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


10
2018-03-24 08:39



Мой файл sudoers имеет те же права (-r - r -----), но все же я могу редактировать его при выполнении sudo nano. С этого момента я буду использовать visudo. Также еще один способ исправить это, если у вас есть пароль root, просто выполните «su», затем отредактируйте файл. - Max
@ user64204 Интересно ... Мой стандартный редактор (emacs) не позволяет мне редактировать файл, а vi делает его очень понятным, он недоступен для записи, но позволяет обойти. Еще одна причина, чтобы каната нано;) - pehrs
+1 для visudo. Также см askubuntu.com/a/73872/5078 для информации об использовании pkexec для восстановления (через PolicyKit). - belacqua