Главная >> Инструкции >> Ошибка user is not in the sudoers file в Ubuntu

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

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

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


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

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

Команда 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:

/etc/sudoersUSERNAME ALL = (ALL) ALL

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

vi /etc/sudoers%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 чтобы ее избежать. Если у вас остались вопросы, спрашивайте в комментариях.

12 комментариев к “Ошибка user is not in the sudoers file в Ubuntu”

  1. Подождите. То есть из под grub можно элементарно сделать пользователю себя с админскими правами? Это что за безопасность такая?..

    Ответить
    • Это режим single mode, его нельзя выплеить, т.к. он необходим для востановления. Для безопасности необходимо поставить пароль на интерактивный режим grub, и постпавить запрос пароля рута при загрузке single mode. По умолчанию просто провалитесь в рутовю консоль.

      Ответить
    • Поддерживаю.
      Потребовалось таки править resolv.conf ..... у меня есть логин созданного админа, но который не может использовать sudo, просто забыли включить. Предыдущий админ уволен и пароли/явки провалены.
      Захожу через grub под рутом, начинаю править resolv.conf, да только nano ругается.... мол, unwritable. И права не могу изменить на файл

      Ответить
      • [РЕШЕНО]
        Вошел в bash прописав строчку в загрузчике init=/bin/bash.... ОК
        На команду nano /etc/resolv.conf ругается, мол файл unwritable. Ладно, лезу в ls -l /etc/resolv.conf и вижу, что права есть для root. При попытке сменить разрешения - chmod 777 /etc/resolv.conf отвечает, что read-only file system. Проблема? Нет!
        Смотрим, какое устройство держит \ .... df -h и даем команду: mount -o remount,rw /dev/sd3 ... в моем случае. После этого файл /etc/resolv.conf доступен для редактирования. Поменял DNS на требуемый и перезагрузился. Все, заработало.

        Ответить

Оставьте комментарий