← Почта · Все разделы

Владельцы и права

Новая установка использует один локальный Docker volume mail_state. PostgreSQL получает только подкаталог data/postgres через volume.subpath; остальные сервисы получают свои каталоги через bind mounts с запретом автоматического создания отсутствующих путей. Compose считает volume используемым, пока существует контейнер PostgreSQL. После down volume сохраняется, но удалять его вручную или через очистку неиспользуемых volumes нельзя.

- PostgreSQL: собственный UID/GID из закреплённого образа (для текущего Alpine-образа 70:70), PGDATA 0700.

- Stalwart: UID/GID пользователя NAS, автоматически определённые из sudo (у вас 1000:1000); локальное состояние 0750/0640.

- NAS blobs и backups: создаются тем же UID, каталоги 0700, архивы 0600.

- Секреты: локальный каталог 0700, файлы 0600. Владельцы отдельных файлов соответствуют читающему сервису.

- Ключ сервера: локальный, владелец Stalwart, 0600. Публичные сертификаты 0644; CA private key доступен только локальному root.

- Roundcube key принадлежит PHP UID 33. Пароли БД имеют владельца PostgreSQL; отдельная копия пароля Stalwart принадлежит NAS UID.

На NAS не выполняется chown. Root остаётся необходим для Docker, локальных прав и systemd; для файловых операций NAS процесс временно использует сохранённый UID/GID и затем восстанавливает права root.

Узнать пути и выбранные UID:


sudo bash mail.sh paths

Docker должен хранить собственные volumes на локальной файловой системе. NFS-backed volume, нестандартный volume driver и Docker data-root на NAS отклоняются. Локальное состояние не входит в общие каталоги HomeMaster.

UID 1000 уже принадлежит вашему администратору: этот пользователь имеет доступ к своим blob-файлам и резервным копиям. Разделение Docker-сетей не является изоляцией от администратора хоста.