В современной системе Ubuntu (и во многих других дистрибутивах GNU / Linux) исправление поврежденного sudoersфайла на самом деле довольно простое и не требует перезагрузки, использования live CD или физического доступа к машине.
Чтобы сделать это через SSH, войдите в систему и выполните команду pkexec visudo. Если у вас есть физический доступ к машине, SSH не нужен; просто откройте окно терминала и выполните эту pkexecкоманду.
Предполагая, что вы (или какой-либо другой пользователь) авторизованы для запуска программ, как rootс PolicyKit, вы можете ввести свой пароль, а затем он будет работать visudoкак root, и вы можете исправить свой /etc/sudoers.
Если вам нужно отредактировать один из конфигурационных файлов /etc/sudoers.d(что необычно в этой ситуации, но возможно), используйте .pkexec visudo -f /etc/sudoers.d/filename
Если у вас есть связанная ситуация, когда вам нужно выполнить дополнительные команды системного администратора в качестве пользователя root для решения проблемы (также необычно в этом случае, но часто встречается в других), вы можете запустить интерактивную корневую оболочку с помощью pkexec bash. Вообще говоря, любая неграфическая команда, которую вы запускаете, sudoможет быть выполнена pkexecвместо этого.
(Если в системе несколько учетных записей пользователей, которым разрешено запускать программы, как rootс PolicyKit, то для любого из этих действий вам будет предложено выбрать, какую из них вы хотите использовать, прежде чем запрашивать пароль.)
Если это не работает - например, если нет пользователей, авторизованных для запуска программ с правами root с помощью PolicyKit, - загрузитесь с живого компакт-диска Ubuntu (например, с компакт-диска, который вы, вероятно, использовали для установки Ubuntu) и смонтируйте файловую систему для установленная система. Вы можете сделать это, запустив
sudo parted -lдля просмотра ваших разделов - вероятно, есть только один раздел ext4, и это корневая файловая система.
Предположим, что корневая файловая система установленной системы Ubuntu находится в / dev / sda1. Тогда вы можете смонтировать его с sudo mount /dev/sda1 /mnt. Затем вы можете редактировать файл sudoers установленной системы с помощью sudo nano -w /mnt/etc/sudoers. Или, что еще лучше, вы можете отредактировать его с помощью
sudo visudo -f /mnt/etc/sudoers
(что не позволит вам сохранить файл sudoers с неверным синтаксисом).