Исправление ошибочной правки sudoers

Как известно, безопаснее редактировать sudoers-файл командой visudo, но что делать, если неправильно отредактировали файл sudoers? Допустим, нужно разрешить пользователю выполнять любые команды без ввода пароля. Пример ошибочной записи:

root ALL=(ALL:ALL) ALL
username ALL=(ALL:ALL) NOPASSWORD: ALL
Ошибка синтаксиса - вместо “NOPASSWORD: ALL” нужно было написать “NOPASSWD: ALL”. Но теперь система жестко накажет администратора за такое легкомысленное поведение - при попытке открытия файла будет выдаваться ошибка.

$ sudo vim /etc/sudoers
>>> /etc/sudoers: syntax error near line 21 <<<
sudo: parse error in /eALLtc/sudoers near line 21
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin
Возникает патовая ситуация, когда мы не можем ничего сделать.
Чтобы исправить данную ситуацию, необходимо дать следующую команду.

pkexec visudo
Далее вводим свой пароль и исправляем.

Как перезапустить сервис от непривилигерованного пользователя

Вписать в файл /etc/sudoers запись вида:

test ALL = NOPASSWD: /etc/init.d/mysql
эта настройка позволяет запустить без пароля службу mysql от имени пользователя test

Другой вариант - создать файл /etc/sudoers.d/test со следующим содержимым:

test ALL=(ALL) NOPASSWD: /usr/sbin/service

И поменять права на 440:

chmod 440 /etc/sudoers.d/test

Инструкция здесь: /etc/sudoers.d/README