- Шесть задач `secrets-file-*` вместо одной: outline, wakapi, authelia, gramps (средний), gitea, tududi (низкий, выигрыш частичный). Wanderer отпал — файловых секретов не умеет ни meilisearch, ни pocketbase. - Матрица механизмов со ссылками на код уехала в docs/drafts/secrets-file-support.md, родитель — на кладбище.
21 lines
1.7 KiB
Markdown
21 lines
1.7 KiB
Markdown
# Убрать группу `docker` у сервисных пользователей
|
||
|
||
**Приоритет:** высокий
|
||
|
||
Все приложения заводят системного пользователя с `owner_extra_groups: ["docker"]`
|
||
(во всех `playbook-*.yml`), но docker.sock реально монтируют только netdata и
|
||
dozzle. Членство в группе `docker` эквивалентно root на хосте (`docker run -v
|
||
/:/host`), поэтому выделенные «непривилегированные» аккаунты (authelia, outline,
|
||
gitea и т.д.) фактически все имеют root — изоляция «пользователь на сервис», ради
|
||
которой их и заводили, обнуляется. Контейнерами рулит Ansible от root (become),
|
||
сервисам группа не нужна. Убрать `docker` из `owner_extra_groups` у всех, кроме
|
||
тех, кому он действительно нужен для самостоятельного управления своим compose (и
|
||
тем — лучше через socket-proxy). За `primary_user` группу оставить для ручных
|
||
операций (`inv ssh`).
|
||
|
||
Из sec-ревью (fable, 2026-07-13). Усиливает риск из серии `secrets-file-*`
|
||
(секреты в `environment:` контейнеров): членство в группе `docker` — как раз тот
|
||
доступ, которым такие переменные и вычитываются.
|
||
|
||
Связано: все playbook-*.yml (owner_extra_groups), roles/owner, playbook-docker.yml.
|