Как вернуть доступ к 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 нашему пользователю.

Вот и всё.

Поделиться:

Если у Вас возникли вопросы.

Приглашаю задавать их на сервисе вопросов и ответов: Ask LinuxRussia.com.
Там Ваши вопросы не потеряются и Вы быстрее получите ответ, в отличие от комментариев.

7 коммент. :

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

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

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

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

    ОтветитьУдалить
    Ответы
    1. какую именно команду, когда выполнили?

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

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

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

    ОтветитьУдалить