Глиф Учебники

Пользователь отсутствует в файле sudoers

Справочник · Debian · 2 минуты чтения

Сообщение ivan is not in the sudoers file (в русской системе — ivan отсутствует в файле sudoers) значит, что программа sudo стоит, но пользователю не разрешено ею пользоваться. В Debian так бывает почти всегда по одной причине: при установке задали пароль root, и первый пользователь не попал в группу sudo.

Решение

Станьте root командой su - (она спросит пароль root), добавьте пользователя в группу sudo и выйдите:

Bash
su -
usermod -aG sudo ivan
exit

Вместо ivan — ваше имя пользователя. Затем выйдите из системы и войдите снова (по SSH — переподключитесь): группы считываются при входе. Проверка — sudo whoami должна ответить root.

Пишите usermod -aG, а не usermod -G. Без -a все прочие группы пользователя заменятся одной группой sudo, и он потеряет, например, доступ к звуку и флешкам.

То же делает команда adduser ivan sudo — выбирайте любую.

Если sudo не найдена

Ответ bash: sudo: команда не найдена значит, что sudo даже не установлен — так бывает, если при установке задан пароль root. Поставьте его в том же сеансе root:

Bash
su -
apt update
apt install sudo
usermod -aG sudo ivan
exit

Если su пишет «команда не найдена»

Если после su (без минуса) usermod не находится, вы получили права root, но не его окружение. Выйдите (exit) и наберите su - с минусом — подробнее в справке Команда не найдена после su.

Если пароля root нет или он забыт

su отвечает Authentication failure (Сбой при проверке подлинности), а sudo не работает — значит, администратора в системе нет. Права можно вернуть только загрузкой в обход системы, сидя за самим компьютером (или в консоли виртуальной машины):

  1. Перезагрузите компьютер. В меню загрузчика GRUB выберите пункт Debian и нажмите e.
  2. Найдите строку, которая начинается с linux, и допишите в её конец через пробел init=/bin/bash.
  3. Нажмите Ctrl+X или F10. Система загрузится сразу в командную строку root, без пароля.

В ней выполните команды ниже. Раскладка клавиатуры в этом режиме — английская, поэтому новый пароль набирайте латиницей и цифрами.

Bash
mount -o remount,rw /
passwd root
sync
exec /sbin/init

Первая команда разрешает запись на диск, вторая задаёт новый пароль root, sync сохраняет изменения на диск, последняя продолжает обычную загрузку. Если загрузка не продолжилась, выключите и включите компьютер кнопкой — после sync изменения уже записаны. Дальше — su - с новым паролем и команды из начала справки.

Такой вход в обход пароля доступен любому, у кого есть доступ к клавиатуре компьютера. Если это опасно (ноутбук, общий компьютер), при установке выбирайте шифрование диска: без парольной фразы этот путь закрыт.

Почему именно группа sudo

В файле /etc/sudoers Debian есть строка %sudo ALL=(ALL:ALL) ALL: она разрешает любые команды участникам группы sudo. Сам файл правят только командой sudo visudo — она проверяет его перед сохранением. Ошибка в /etc/sudoers ломает sudo для всех пользователей сразу.