Как вернуть доступ к sudo в Ubuntu

После каких-либо действий в системе, Вы можете нечаянно себя удалить из группы sudo.
В результате чего, у Вас будет отсутствовать доступ к правам суперпользователя. И Вы ничего не сможете сделать с Вашей системой.

В этой статье покажу как это исправить и вернуть права суперпользователя sudo своему пользователю.

Если выполняя команду с sudo, вы получаете следующее сообщение:

linuxrussia@virtbox:~$ sudo apt-get update
[sudo] password for linuxrussia:
linuxrussia отсутствует в файле sudoers. Данное действие будет занесено в журнал.
linuxrussia@virtbox:~$

то это статья для Вас.

Итак, вся суть решения этой проблемы в том, чтобы добавить своего пользователя в нужные группы adm и sudo.

Чтобы посмотреть список групп текущего пользователя выполните команду в терминале:
cat /etc/group | grep имя_вашего_пользователя

где вместо "имя_вашего_пользователя" нужно ввести имя своего пользователя, которое можно узнать выполнив команду в терминале:
whoami

Если было бы всё хорошо, то выглядеть должно примерно так:

Решение проблемы с доступом к команде sudo.

Для того, чтобы добавлять пользователя в группы, нужны права суперпользователя.

1 Шаг. Нужно войти под тем, кто имеет права суперпользователя:

1 Вариант. Если у Вас на компьютере есть еще один пользователь с правами суперпользователя, то подключаемся к нему через терминал.

su имя_пользователя

2 Вариант. Если установлен пароль на root, то можно подключиться к root:

su

3 Вариант. Через grub меню войти в recovery mode.
Перегружаем систему, входим в grub menu (если у Вас оно не запускается при загрузке, то жмём "Esc" при старте системы):

Заходим в пункт "Дополнительные параметры системы" 
и выбираем Ubuntu (recovery mode):

Запустится "Режим восстановления" - "Recovery mode" Ubuntu, очень полезная утилита, которая очень часто выручает.

Чтобы перемонтировать файловую систему с режимом записи, нужно выбрать стрелками клавиатуры пункт network - enable network и нажать клавишу "Enter":

Теперь выбираем пункт root и жмём клавишу "Enter":

Это вход в консоль под root:

Воспользовавшись одним из вариантов мы вошли в систему под пользователем, у которого есть полные права.

2 Шаг. Возвращаем своему пользователю права суперпользователя.

Для того, чтобы вернуть своему пользователю права sudo, нужно выполнить команду следующего шаблона:

usermod -aG список_групп,через_запятую_без_пробелов имя_вашего_пользователя

Для того, чтобы вернуть права суперпользователя Вашему пользователю, его нужно добавить в две группы:

adm
sudo

Но помимо этого еще по умолчанию пользователь добавлен в следующие группы:

plugdev
cdrom
audio
dip
lpadmin

и группа_аналогична_имени_вашего_пользователя она равна имени вашего пользователя, в моём случае это linuxrussia

В общем, нужно выполнить следующую команду, которая решит нашу проблему(вводите правильно имена групп):

usermod -aG adm,sudo,plugdev,cdrom,audio,cdrom,dip,lpadmin,linuxrussia linuxrussia

вместо linuxrussia - имя Вашего пользователя. 
Не вводим ни в коем случае пробелов в списке групп после запятых. 
Пробел ставится после списка групп перед именем пользователя.

Вот и всё.

Проверяем файл /etc/group , что пользователь добавился в группы:
cat /etc/group | grep имя_вашего_пользователя

Должны увидеть следующее:

Теперь перезагружаем систему.

И пробуем ввести команду с sudo:

Вот таким образом мы вернули права sudo нашему пользователю.

Вот и всё.

  • ALPom

    Спасибо. Я знал только способ с исправлением через live cd.
    Потерять доступ к sudo можно еще при ошибке в синтаксисе файла /etc/sudoers. Если его редактировать обычным редактором, то ошибки в синтаксисе ведут к невозможности выполнения команд от администратора. Поэтому редактировать надо через visudo. Такая утилита, которая проверяет синтаксис при сохранении.

    • https://www.blogger.com/profile/00865845114198842309 Edward Kobylyanets

      Еще нельзя менять права на файл sudoers.
      Про sudoers будет следующая статья, когда буду описывать доступ без пароля к некоторым программам и скриптам. Обязательно упомяну что его ни в коем случае нельзя менять через nano /etc/sudoers

  • Анонимный

    выполнил команду
    появилась ошибка cannot lock/etc/passwd:try again later

    что пошло не так?

    • https://www.blogger.com/profile/00865845114198842309 Edward Kobylyanets

      какую именно команду, когда выполнили?

  • Анонимный

    Спасибо тебе добрый человек!

  • https://www.blogger.com/profile/00899310727779730797 Сергей Калугарёв

    Здравствуйте админ. По Вашим рекомендациям проверил свои права польз-ля, оказалось всё нормально. Но в ubuntu tweak при нажатии "чистить" ничего не происходит. Кнопка — активна. Синаптик перестал запускаться. В центре приложений пытылся удалять — пишет , что недостаточно прав. Помогите пожалуйста!

  • https://www.blogger.com/profile/00899310727779730797 Сергей Калугарёв

    …уважаемый админ, пишу в дополнение: при удалении программ посмотрел подробности. Вот что написал — org.freedesktop.PolicyKit.Error.Failed: ('system-bus-name', {'name': ':1.83'}): org.debian.apt.install-or-remove-packages У меня ubuntu 14.04