При попытке настроить срабатывание одного из скриптов, который обращается к системной функции от имени обычного пользователя системы, возникла необходимость внести изменения в полномочия пользователя через файл
/etc/sudoers
В найденных на эту тему материалах говорится, что редактирование данного файла необходимо производить через команду
visudo. Хотелось бы, конечно, чтобы авторы таких материалов уточняли, что команду следует запускать от имени суперпользователя, так как при вводе просто visudo в терминале появляется:
~ $ visudo
visudo: /etc/sudoers: Отказано в доступе
После ввода "правильной" команды открывается окно редактора
nano с загруженным в него содержанием файла
sudoers.
Авторы публикаций поясняют, что при таком способе будет проверяться правильность синтаксиса вносимых в него изменений.
Вследствие отсутствия необходимости использования редактора
nano мне не было известно назначение клавиш, с помощью которых производится запись в файл вносимых изменений:
И только в дальнейшем после "подсказки друга" мне стало известно, что символ ^ соответствует клавише Ctrl.
Поэтому редактирование мной файла
sudoers производилось более привычным способом –
sudo gedit /etc/sudoers
Увы, никто не застрахован от ошибок и после очередного эксперимента с редактированием содержания этого файла система мне выдала сообщение:
>>> /etc/sudoers: ошибка синтаксиса near line 21 <<<
sudo: parse error in /etc/sudoers near line 21
sudo: no valid sudoers sources found, quitting
sudo: не удаётся инициализировать модуль политики
Следствием этого стало невозможным использование любых начинающихся с sudo команд, а также символ ошибки в значке, отображающем доступность обновлений системы
К счастью, "лечение" сломанного механизма сводится к выполнению одной команды:
pkexec visudo
После ввода пароля суперпользователя будет открыт тот же редактор
nano с загруженным в него содержанием файла
sudoers.
Соотнесите содержание своего файла с содержанием по умолчанию (без строк, начинающихся с символа комментария #):
root
ALL=(ALL:ALL) ALL
%admin ALL=(ALL) ALL
%sudo
ALL=(ALL:ALL) ALL
Исправьте свои "неверные" записи или приведите файл к исходного значению, после чего нажмите на комбинацию клавиш Ctrl и o. На последующий запрос нажмите y:
Далее, используя клавишу Backspace, удалите в наименовании файла .tmp и на вопрос о перезаписи существующего файла снова нажмите клавишу y:
Как видите, нет необходимости в переустановке системы. К тому же Вы будете избавлены от боязни дальнейшего редактирования файла sudoers, так как всегда сможете вернуться к корректному состоянию его содержания.