Sharing non-leaf dataset... or not. SFTPGo setup

,

Hello. I want to set up an SMB share for SFTPGo (which would live on a separate proxmox node). I’ve set up tiered snapshots for the entire pool. I want my sftpgo users to have separate snapshots. Thus, it would be possible:

  1. to examine snapshots of a particular user, seeing only changes of this user.
  2. to revert just a single user to the selected snapshot.
  3. for the user to look at his own history via .zfs/snapshot. I’m considering it a huge plus.

It could be possible to achieve this by creating a separate share for each user. However, administering this setup would be a PITA.
Another solution that comes to mind is creating a separate dataset for each user in the parent dataset and then sharing the parent dataset. I suspect that this solution is discouraged.


My questions are:

  1. What are the caveats of a solution with sharing a parent dataset?
  2. Is there any other viable approach?

Bump

in my experience most people end up doing a dataset per user and pointing sftpgo at those, then leave the snapshot task on the parent with recursive on. its more datasets to look at but admin is not really worse since the periodic task covers the children anyway.

sharing the parent works but its the thing that usually bites later with permissions and users wandering into each others dirs, so id probably avoid it. the .zfs/snapshot part is kinda separate too, thats the snapdir property plus whether the smb share has previous versions / shadow copies enabled, i think truenas does zfs shadow copies on the share so per user it should show only their own snapshots. might be wrong on the newer versions though.