Как использовать sudo для делегирования привилегий (visudo) на VPS?

В этой статье разберём:

  • как работает sudo и зачем нужен visudo;
  • как добавить пользователя в sudo-группу;
  • как редактировать sudoers-файл и ограничить доступ к определённым командам;
  • как безопасно проверять настройки и откатывать изменения.

Проверка наличия sudo и базовая информация

Во многих системах (Ubuntu, Debian, CentOS) sudo предустановлен по умолчанию. Проверим, установлен ли он:

sudo -V

Если команда не найдена, установите пакет:

sudo apt update
sudo apt install -y sudo

После установки проверьте, что sudo доступен для текущего пользователя:

sudo whoami

Если вывод — root, значит sudo работает корректно.

Проверка sudo на VPS

Добавление пользователя в группу sudo

Чтобы разрешить пользователю выполнять команды через sudo, добавьте его в группу sudo (Ubuntu/Debian) или wheel (CentOS/RHEL).

Ubuntu / Debian

sudo usermod -aG sudo username

CentOS / RHEL

sudo usermod -aG wheel username

Проверить, что пользователь добавлен в группу, можно командой:

groups username

Совет: чтобы изменения вступили в силу, выйдите из системы и войдите заново.

Добавление пользователя в sudo-группу

Редактирование sudoers с помощью visudo

Файл /etc/sudoers определяет, кто может использовать sudo и какие команды ему разрешены. Редактировать его напрямую опасно — ошибка в синтаксисе может заблокировать sudo. Для этого существует безопасный редактор visudo.

Открываем sudoers

sudo visudo

По умолчанию откроется nano или vi с конфигурацией. Найдите строку:

root    ALL=(ALL:ALL) ALL

Чтобы дать пользователю admin полные права:

admin   ALL=(ALL:ALL) ALL

Сохраняем изменения и проверяем:

sudo -l -U admin

Если отображается список доступных команд — настройка выполнена успешно.

Редактирование sudoers через visudo

Ограничение доступа к командам

Необязательно давать пользователю полный доступ к sudo. Можно разрешить выполнение только определённых команд.

Пример: разрешить пользователю deploy только перезапуск службы Nginx:

deploy  ALL=(ALL) NOPASSWD: /bin/systemctl restart nginx

Теперь пользователь сможет выполнять только:

sudo systemctl restart nginx

и ничего другого с повышенными правами.

NOPASSWD: — означает, что sudo не запросит пароль. Если хотите повышенную безопасность, уберите этот префикс.

Ограничение sudo-команд

Настройка алиасов и групп пользователей

Для удобства можно создавать алиасы групп пользователей или команд прямо в sudoers.

Пример:

# Группы пользователей
User_Alias   ADMINS = admin, dmitriy
User_Alias   OPERATORS = deploy, editor

# Группы команд
Cmnd_Alias   SYSTEM_CMDS = /bin/systemctl restart nginx, /bin/systemctl restart apache2

# Права
ADMINS    ALL=(ALL) ALL
OPERATORS ALL=(ALL) NOPASSWD: SYSTEM_CMDS

Так можно централизованно управлять правами для нескольких пользователей.

Использование алиасов в sudoers

Безопасное редактирование и проверка конфигурации

После сохранения файла visudo автоматически проверяет синтаксис. Если редактировали вручную — можно проверить вручную:

sudo visudo -c

Для просмотра всех прав пользователя:

sudo -l

Если получили ошибку «permission denied» при выполнении sudo — возможно, у вас нет прав или файл sudoers повреждён. Используйте веб-консоль или root-доступ для восстановления резервной копии:

sudo cp /etc/sudoers.bak /etc/sudoers
Проверка конфигурации sudoers

Рекомендации по безопасности

  • Не давайте пользователям полный root-доступ без необходимости.

  • Используйте ограниченные команды и алиасы.

  • Не редактируйте /etc/sudoers напрямую — только через visudo.

  • Регулярно проверяйте лог /var/log/auth.log на использование sudo.

  • Отключайте sudo-доступ у бывших сотрудников или временных пользователей.

Рекомендации по безопасности sudo

Итоги

  • Установили и настроили sudo для делегирования привилегий.

  • Добавили пользователей в группу sudo и настроили индивидуальные права.

  • Научились редактировать sudoers безопасно через visudo.

  • Разобрали ограничение команд, алиасы и проверку конфигурации.

Вывод: правильно настроенный sudo повышает безопасность и управляемость VPS. Он позволяет давать пользователям ровно столько прав, сколько нужно — без риска повреждения системы или утечки данных.

Итоги настройки sudo

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