Ошибка user is not in the sudoers file в Ubuntu

Если при создании пользователя в Ubuntu вы не выбрали тип администратор, а потом авторизуетесь и попытаетесь выполнить sudo, то получите ошибку: «user is not in the sudoers file this insident will be reported».

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

Содержание статьи

  • Почему возникает эта ошибка?
  • Исправление ошибки когда есть суперпользователь
  • Исправление ошибки с помощью Grub
  • Выводы

Почему возникает эта ошибка?

Команда sudo позволяет пользователям выполнять программы от имени суперпользователя со всеми его правами. Использовать команду sudo могут далеко не все пользователи, а только перечисленные файле /etc/sudoers. Это сообщение об ошибке говорит буквально следующее — вашего пользователя нет в файле sudoers, а значит доступ ему к утилите будет запрещен, а об этом инциденте будет сообщено администратору.

Все неудачные попытки использовать sudo, независимо от того, был ли введен неверный пароль или верный, действительно записываются в файл /var/log/auth.log, так что вы можете посмотреть кто какие команды пытался выполнять:

tail /var/log/auth.log

Исправление ошибки когда есть суперпользователь

Для исправления проблемы достаточно разрешить пользователю использовать sudo в файле /etc/sudoers. Запись разрешающая использовать sudo выглядит так:

имя_пользователя ALL=(ALL:ALL) ALL

Или так:

%группа ALL=(ALL:ALL) ALL

В Ubuntu могут использовать sudo все пользователи из группы admin, группы sudo, а также пользователь root:

Таким образом, вам нужно либо добавить нового пользователя в одну из групп, либо добавить запись о нём в файл /etc/sudoers. Но и то и другое можно сделать только с правами root. Поэтому нужно иметь другого пользователя, который может использовать sudo. Если такой пользователь есть, задача становится довольно простой. Но даже если нет, проблема тоже вполне решаема.

Начнем с более простого варианта, на тот случай, если у вас все-таки есть в системе ещё один пользователь который может использовать sudo. Авторизируйтесь от имени этого пользователя и используйте команду usermod для того чтобы добавить нового пользователя в группу admin:

usermod -aG admin USERNAME

Или:

usermod -aG sudo USERNAME

Вы также можете добавить отдельную строку для самого пользователя в файле sudoers:

USERNAME ALL = (ALL) ALL

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

%sudo ALL = (ALL) ALL

Возможно, её будет достаточно расскоментировать, убрав символ хештег, который расположен перед ней. После этого ошибка user is not in the sudoers file исчезнет и вы сможете использовать sudo. Более подробно про это все вы можете прочитать в статье настройка sudo.

Исправление ошибки с помощью Grub

Если на вашем компьютере нет другого пользователя, от имени которого вы могли бы получить доступ к sudo, осталась возможность использовать Grub и загрузится прямо в Bash без использования системы инициализации. Тут у вас будет root доступ к корневой файловой системе. Для этого перезагрузите компьютер и в меню Grub нажмите E.

Откроется редактор выбраннго пункта меню. В нем найдите строку которая начинается с linux /boot/vmlinuz и в её конец добавьте init=/bin/bash. Это будет выглядеть примерно вот так:

Дальше вы загрузитесь в оболочку /bin/bash с правами суперпользователя. По умолчанию корневая файловая система будет примонтирована только для чтения. Для того чтобы перемонтировать её для записи выполните:

mount -o remount,rw /

После этого вы уже сможете выполнить все выше приведенные команды, например, добавить пользователя sudoers, добавлением его в группу sudo:

usermod -aG sudo имя_пользователя

После выполнения команды можно перезагрузить компьютер с помощью команды reboot с опцией -f:

reboot -f

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

Выводы

В этой статье мы рассмотрели что делать, если вы получаете ошибку user is not in the sudoers file, а также как добавить пользователя в sudoers ubuntu чтобы ее избежать. Если у вас остались вопросы, спрашивайте в комментариях.

Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *