Как добавить пользователя в sudo
Права администратора в Ubuntu даёт группа sudo. Добавьте в неё пользователя (команду выполняет тот, кто уже администратор):
sudo usermod -aG sudo petrПроверьте, что группа появилась:
groups petrВ ответе должно быть слово sudo. Права начнут действовать после того, как petr выйдет из системы и войдёт снова (или заново подключится по SSH). Проверка из-под него: команда sudo whoami должна ответить root.
Ключ -a обязателен. Без него usermod -G sudo petr заменит все дополнительные группы пользователя одной группой sudo, и он потеряет остальные права — например, доступ к журналам через группу adm.
То же самое делают команды sudo adduser petr sudo и sudo gpasswd -a petr sudo — выбирайте любую.
Убрать права администратора
sudo deluser petr sudoПользователь останется в системе, но sudo ему станет недоступен — тоже после нового входа.
Не убирайте из группы sudo последнего администратора, в том числе себя: вернуть права тогда можно будет только через режим восстановления.
Ошибка «is not in the sudoers file»
Сообщение petr is not in the sudoers file значит, что пользователь не входит в группу sudo. Попросите администратора выполнить команду из начала статьи. Если администратора нет (например, единственного пользователя по ошибке вывели из группы), загрузитесь в режим восстановления, как в справке Как сменить пароль пользователя или root, и в командной строке root выполните:
mount -o remount,rw /
usermod -aG sudo ivan
rebootsudo здесь не нужен — вы уже root.
Почему именно группа sudo
В файле /etc/sudoers есть строка %sudo ALL=(ALL:ALL) ALL: она разрешает участникам группы sudo любые команды. В очень старых версиях Ubuntu для этого служила группа admin, в некоторых других системах Linux — wheel.
sudo без пароля
Иногда пароль мешает — например, скрипту, который работает без человека. Правило для одного пользователя кладут отдельным файлом, и только через visudo:
sudo visudo -f /etc/sudoers.d/petrС одной строкой:
petr ALL=(ALL:ALL) NOPASSWD: ALLvisudo проверит строку перед сохранением. Имя файла — без точки: файлы с точкой в имени (petr.conf) sudo пропускает.
С таким правилом любой, кто попал в учётную запись petr (украденный ключ SSH, незаблокированный компьютер), сразу становится root без единого вопроса. Лучше разрешить без пароля только нужные команды, а не ALL.