Поиск по сайту:

Как восстановить привилегии Sudo пользователю в Ubuntu Linux

Пошаговое руководство по исправлению неработающего sudo в Ubuntu и его производных.

В этом руководстве объясняется, как восстановить права sudo пользователя из режима восстановления в Ubuntu Linux и его производных, таких как Linux mint, операционные системы Pop OS. Это руководство официально протестировано в системе Ubuntu 18.04 LTS. Однако он должен работать в более новых версиях Ubuntu, а также в других дистрибутивах Linux.

Введение

На днях я тестировал, как добавить обычного пользователя в группу sudo и удалить данные привилегии, чтобы он снова стал обычным пользователем в Ubuntu.

Во время тестирования я намеренно удалил своего пользователя-администратора из группы «sudo». Как вы, возможно, знаете, членство в группе sudo имеет решающее значение для выполнения любых административных задач. К сожалению, у меня был только один суперпользователь, и я уже отозвал его привилегии sudo.

Каждый раз, когда я пытался выполнить команду с префиксом «sudo», я получал сообщение об ошибке: "sk отсутствует в файле sudoers. Об этом инциденте будет сообщено."

В настоящее время я не могу выполнять какие-либо административные задачи, поскольку не могу переключиться на пользователя root с помощью команды «sudo su». Стоит отметить, что пользователь root по умолчанию отключен в Ubuntu, а это значит, что я также не могу войти в систему как пользователь root.

Вы когда-нибудь были в такой ситуации? Не беспокойся! Сегодня я покажу вам, как исправить нарушенные привилегии sudo для пользователя в системе Ubuntu Linux.

Восстановить привилегии Sudo для пользователей в Ubuntu

Шаг 1. Загрузите систему Linux в режим восстановления.

Для этого перезагрузите систему, нажмите и удерживайте клавишу SHIFT во время загрузки. Вы увидите меню загрузки grub. Выберите "Дополнительные параметры Ubuntu" в списке меню загрузки.

Выберите «Дополнительные параметры для Ubuntu» в меню Grub.

На следующем экране выберите параметр режим восстановления и нажмите ENTER:

Выберите режим восстановления в меню Grub.

Затем выберите параметр "Перейти в корневую оболочку" и нажмите клавишу ВВОД:

Выберите опцию «Переместить в корневую оболочку».

Теперь вы находитесь в режиме восстановления как пользователь root.

Режим восстановления Ubuntu

Шаг 2. Смонтируйте корневую файловую систему в режиме чтения/записи. Для этого введите следующую команду, чтобы смонтировать корневую файловую систему (/) в режиме чтения/записи.

mount -o remount,rw /

Шаг 3. Теперь добавьте пользователя, которого вы удалили, из группы sudo.

В моем случае я добавляю пользователя с именем 'sk' в группу sudo с помощью следующей команды:

adduser sk sudo

Восстановить права sudo для пользователя из режима восстановления Ubuntu

Шаг 4. Затем введите exit, чтобы вернуться в меню восстановления. Выберите Возобновить, чтобы запустить систему Ubuntu.

Возобновить нормальную загрузку

Нажмите ENTER, чтобы продолжить вход в обычный режим:

Выйти из режима восстановления в Ubuntu

Шаг 5: Теперь проверьте, восстановлены ли привилегии sudo.

Для этого введите следующую команду из терминала.

sudo -l -U sk

Пример вывода:

[sudo] password for sk: 
Matching Defaults entries for sk on ubuntuserver:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User sk may run the following commands on ubuntuserver:
(ALL : ALL) ALL

Как вы видите в приведенном выше сообщении, пользователь sk теперь может запускать все команды с префиксом sudo. Поздравляем! Вы успешно восстановили права sudo для пользователя.

Существуют также другие возможности вызвать сбой sudo

Обратите внимание, что на самом деле я сделал это специально, чтобы показать вам, как восстановить нарушенные привилегии sudo пользователю. Я удалил себя из группы sudo и исправил нарушенные привилегии sudo, как описано выше.

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

Кроме того, есть две другие возможности вызвать сбой sudo.

  • Возможно, файл /etc/sudoers был изменен.
  • Вы или кто-то другой могли изменить права доступа к файлу /etc/sudoers.

Исправить сломанный Sudo в Ubuntu

Если вы выполнили одно или все из вышеперечисленных действий и в итоге получили неработающую команду sudo, попробуйте следующие решения.

Решение 1:

Если вы изменили содержимое файла /etc/sudoers, перейдите в режим восстановления, как описано ранее.

Создайте резервную копию существующего файла /etc/sudoers перед внесением каких-либо изменений.

cp /etc/sudoers /etc/sudoers.bak

Затем откройте файл /etc/sudoers:

visudo

Внесите изменения в файл, чтобы они выглядели следующим образом:

#
This file MUST be edited with the 'visudo' command as root.
#
Please consider adding local content in /etc/sudoers.d/ instead of
directly modifying this file.
#
See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

Host alias specification

User alias specification

Cmnd alias specification

User privilege specification
root ALL=(ALL:ALL) ALL

Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL

See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

Изменив содержимое таким образом, нажмите CTRL+X и y, чтобы сохранить и закрыть файл. .

Наконец, введите exit и выберите Возобновить, чтобы запустить систему Ubuntu, выйти из режима восстановления и продолжить загрузку как обычный пользователь.

Теперь попробуйте запустить любую команду с префиксом sudo, чтобы проверить, восстановлены ли привилегии sudo.

Решение 2:

Если вы изменили права доступа к файлу /etc/sudoers, этот метод устранит неполадку с sudo.

В режиме восстановления выполните следующую команду, чтобы установить правильное разрешение для файла /etc/sudoers:

chmod 0440 /etc/sudoers

Установив правильное разрешение для файла, введите exit и выберите Возобновить, чтобы запустить систему Ubuntu в обычном режиме. Наконец, проверьте, можете ли вы запустить любую команду sudo.

Заключение

В этом руководстве мы рассмотрели причины сбоя sudo и способы восстановления привилегий sudo пользователю из режима восстановления в Ubuntu и ее производных.

Рекомендуем прочитать:

  • Как изменить файл журнала Sudo по умолчанию в Linux
  • Как найти всех пользователей Sudo в вашей системе Linux
  • Как запустить определенные команды без пароля Sudo в Linux

Статьи по данной тематике