Системные пользоватли и группы

Cоздать ограниченную в правах сервисную группу

в целях безопасности

addgroup --system --gid 14956 pihole

Cоздать ограниченного в правах сервисного пользователя

adduser --system --gecos 'Unbound and Pihole DNS service' \
    --disabled-password --uid 14956 --ingroup pihole \
    --shell /sbin/nologin --home /opt/pihole/data pihole

Файл с перечнем ограниченных прав sudoers

visudo -f /etc/sudoers.d/90_pihole

безопасный способ добавить кастомные настройки без правки основного /etc/sudoers

Cmnd_Alias — создание псевдонима для набора команд. Здесь ты задаёшь список разрешённых docker-команд.

Всё жёстко привязано к конкретному docker-compose.yml, что хорошо с точки зрения безопасности

Cmnd_Alias PIHOLE_DOCKER = \
    /usr/bin/docker compose -f /opt/pihole/docker-compose.yml up, \
    /usr/bin/docker compose -f /opt/pihole/docker-compose.yml down

pihole ALL = (:docker) NOPASSWD: PIHOLE_DOCKER

Пользователь pihole сможет выполнять:

sudo -g docker /usr/bin/docker compose -f /opt/pihole/docker-compose.yml up

sudo -g docker /usr/bin/docker compose -f /opt/pihole/docker-compose.yml down

  1. 🟢 Без запроса пароля
  2. 🔒 Только строго определённые действия
  3. 🚫 Не даёт широких sudo-прав