Как восстановить привилегии 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