Group= и SupplementaryGroups= в systemd
Задаёт основную группу процессов службы. Дополнительные группы перечисляются отдельным параметром SupplementaryGroups= — через них службе дают доступ к чужим файлам и сокетам.
Что делает
Дополнительные группы — самый аккуратный способ выдать доступ. Вместо расширения прав на файл службу включают в группу-владельца: например веб-сервер в группу, которой принадлежит сокет обработчика PHP. Права на файл при этом остаются узкими.
Список применяется целиком: одна несуществующая группа в нём валит запуск с кодом 216/GROUP, даже если остальные существуют.
Где ставится. В секции [Service]. Без Group= используется основная группа пользователя из User=.
Значения
| Значение | Что происходит |
|---|---|
app | основная группа процессов службы. |
SupplementaryGroups=docker redis | дополнительные группы через пробел. |
Пример
Доступ к сокету обработчика через общую группу.
[Service]
User=www-data
Group=www-data
SupplementaryGroups=php-sockets
Сокет принадлежит группе php-sockets с правами 0660. Веб-серверу достаточно быть в этой группе — расширять права на сам сокет не нужно.
Типичные ошибки
Несуществующая группа в списке даёт код 216/GROUP при запуске.
Изменение групп требует перезапуска службы: на работающий процесс новое членство не действует.
Членство, добавленное через usermod -aG, на службу не влияет: она получает группы из unit-файла, а не из базы учётных записей при входе.
Связанные ошибки
- status=216/GROUP в systemdКод 216/GROUP: systemd не смог определить или сменить группу из Group= или SupplementaryGroups=. Причины и как проверить.
- Permission denied в журнале службыОтказ в доступе у службы systemd: права на файл, каталоги по пути, пользователь службы, параметры изоляции, SELinux и AppArmor.
- nginx 502 Bad Gateway: connect() failed к приложениюnginx работает, а приложение недоступно: connect() failed, connection refused, no such file or directory для сокета. Разбор 502.
Рядом стоящие параметры
Где важен на практике
Источники
- systemd.exec(5)
- Воспроизведено на тестовой машине, systemd 255 (Ubuntu 24.04)