addgroup --system --gid 14956 pihole
adduser --system --gecos 'Unbound and Pihole DNS service' \ --disabled-password --uid 14956 --ingroup pihole \ --shell /sbin/nologin --home /opt/pihole/data pihole
UID будет взят из диапазона системных UID (100–999), если не задан явно
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