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

Как добавить пользователя в sudo

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

Права администратора в Ubuntu даёт группа sudo. Добавьте в неё пользователя (команду выполняет тот, кто уже администратор):

Bash
sudo usermod -aG sudo petr

Проверьте, что группа появилась:

Bash
groups petr

В ответе должно быть слово sudo. Права начнут действовать после того, как petr выйдет из системы и войдёт снова (или заново подключится по SSH). Проверка из-под него: команда sudo whoami должна ответить root.

Ключ -a обязателен. Без него usermod -G sudo petr заменит все дополнительные группы пользователя одной группой sudo, и он потеряет остальные права — например, доступ к журналам через группу adm.

То же самое делают команды sudo adduser petr sudo и sudo gpasswd -a petr sudo — выбирайте любую.

Убрать права администратора

Bash
sudo deluser petr sudo

Пользователь останется в системе, но sudo ему станет недоступен — тоже после нового входа.

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

Ошибка «is not in the sudoers file»

Сообщение petr is not in the sudoers file значит, что пользователь не входит в группу sudo. Попросите администратора выполнить команду из начала статьи. Если администратора нет (например, единственного пользователя по ошибке вывели из группы), загрузитесь в режим восстановления, как в справке Как сменить пароль пользователя или root, и в командной строке root выполните:

Bash
mount -o remount,rw /
usermod -aG sudo ivan
reboot

sudo здесь не нужен — вы уже root.

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

В файле /etc/sudoers есть строка %sudo ALL=(ALL:ALL) ALL: она разрешает участникам группы sudo любые команды. В очень старых версиях Ubuntu для этого служила группа admin, в некоторых других системах Linux — wheel.

sudo без пароля

Иногда пароль мешает — например, скрипту, который работает без человека. Правило для одного пользователя кладут отдельным файлом, и только через visudo:

Bash
sudo visudo -f /etc/sudoers.d/petr

С одной строкой:

Текст
petr ALL=(ALL:ALL) NOPASSWD: ALL

visudo проверит строку перед сохранением. Имя файла — без точки: файлы с точкой в имени (petr.conf) sudo пропускает.

С таким правилом любой, кто попал в учётную запись petr (украденный ключ SSH, незаблокированный компьютер), сразу становится root без единого вопроса. Лучше разрешить без пароля только нужные команды, а не ALL.