Если при создании пользователя в 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:
/etc/sudoersUSERNAME ALL = (ALL) ALL
Дальше осталось сохранить изменения в файле и заново авторизоваться от имени нового пользователя. Если в файле /etc/sudoers нет строк разрешающих использовать утилиту пользвоателям из группы sudo, то можно добавить такую строчку:
/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 чтобы ее избежать. Если у вас остались вопросы, спрашивайте в комментариях.
Может все же не
usermod -a -G wgeel имя_пользователя
а
usermod -a -G wheel имя_пользователя
Опечаточка (wgeel -->> wheel)
Не работает ни@уя команда через рут. Что за опция -а?
man usermod
-a --append
еще как вариант можно с профиля админа использовать команду
sudo adduser [username] sudo
Подождите. То есть из под grub можно элементарно сделать пользователю себя с админскими правами? Это что за безопасность такая?..
Это режим single mode, его нельзя выплеить, т.к. он необходим для востановления. Для безопасности необходимо поставить пароль на интерактивный режим grub, и постпавить запрос пароля рута при загрузке single mode. По умолчанию просто провалитесь в рутовю консоль.
зашёл через GRUB под рутом, и всё равно пишет что sudoers только для чтения. Подскажите пожалуйста, что не так?
Поддерживаю.
Потребовалось таки править 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 на требуемый и перезагрузился. Все, заработало.
Измените vi /etc/sudoers на visudo /etc/sudoers
Иначе файл открывается как readonly
забыли, что нужно корневую ФС смонтировать в режим записи