I am setting up a Docker based home file-/media-server running on Ubuntu with services such as NextCloud, Samba, Plex, etc.
One of the goals is to have a personal storage location for each of the users of the server available remotely (via NextCloud) as well locally as a Network Location on Windows (via Samba).
There will also be multiple common storage locations (for family photos, videos etc.) available to all users via NextCloud and Samba as well, which should also be accessible to other services / containers such as Plex so that users can upload media content remotely.
I am using a ZFS pool for the storage with a dataset hierarchy as shown in the screenshot and the applicable datasets are bind mounted to the NextCloud Docker container and then added as external storage in the NextCloud GUI.
My question is; how should I define the server users, groups and permissions to handle all of this without getting into trouble with conflicts, syncing issues, data corruption possibilities etc. when the same folder/datasets are used by two or more services / containers? Is there a correct way of doing this?
Currently I have just made a docker group and added it to the server user and set them as the owner of the datasets used by the NextCloud container.