В современной системе 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/имя файла
.
Если у вас возникла связанная с этим ситуация, когда вам необходимо выполнить дополнительные команды системного администрирования от имени root для устранения проблемы (также необычно в этом случае, но часто встречается в других), вы можете запустить интерактивную корневую оболочку с помощью pkexec bash
. Вообще говоря, любая неграфическая команда, которую вы бы выполнили с sudo
может быть запущен с pkexec
вместо.
(Если в системе имеется более одной учетной записи пользователя, авторизованной для запуска программ как root
с помощью PolicyKit для любого из этих действий вам будет предложено выбрать, какое из них вы хотите использовать, прежде чем будет запрошен ваш пароль.)
Если это не сработает - например, если нет пользователей, уполномоченных запускать программы от имени root через PolicyKit, - тогда загрузитесь с компакт-диска Ubuntu live (например, с компакт-диска, который вы, вероятно, использовали для установки 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 с неправильным синтаксисом).