В современной системе 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 с неверным синтаксисом).