>_ IzzyLab

Практическое задание

Настрой sudo без пароля для деплоя

средне

CI-пользователю deploy нужно перезапускать сервис без интерактивного пароля, но полный root ему давать нельзя. Разреши через sudoers пользователю deploy выполнять только /usr/bin/systemctl restart app (и ничего больше) без пароля.

Что потренируешь:
  • sudo
  • sudoers.d
  • visudo
  • принцип наименьших привилегий
  • NOPASSWD

Разбор темы

Принцип наименьших привилегий: пользователю дают ровно одну нужную команду, а не root целиком. Правила sudo кладут отдельным фрагментом в каталог /etc/sudoers.d/, а не правят общий файл руками. Строка правила описывает кто, на каких хостах, от чьего имени и что именно может выполнять; тег перед командой снимает запрос пароля, а команду указывают полным путём с точными аргументами. Битый sudoers способен закрыть sudo вообще, поэтому синтаксис обязательно проверяют валидатором (visudo -c).

Что проверяется

  1. конфигурация sudoers валидна
  2. deploy имеет NOPASSWD на systemctl restart app
  3. права deploy ограничены одной командой

Как это выглядит