Re: ZFS home encryption is misleading for new desktop users

From: Gleb Popov <arrowd_at_freebsd.org>
Date: Mon, 07 Jul 2025 11:16:01 UTC
On Sun, Jul 6, 2025 at 2:01 PM Marc Coquand <marc@coquand.email> wrote:
>
> Heya!
>
> When you install FreeBSD with zfs+encrypted home, the home is seemingly "encrypted", but that is only if you login as root, run zfs load-keys and mount the directory. Otherwise, your home directory is an unencrypted directory living in the zroot/home dataset. Running `zfs list` makes it seem that the directory is actually mounted, because you see:
>
> NAME                  USED  AVAIL  REFER  MOUNTPOINT
> zfs/home/me        XX   XX   XX  /home/me
>
> However, running df uncovers that the dataset is actually never mounted! You need to first load keys and then mount the disk. I think that's confusing for a new desktop user. I actually thought my home directory was encrypted since that is what I had setup in the installer! I only discovered this because there were no snapshot directory in my $HOME, and so I had created snapshots for an encrypted dataset that was never mounted.
>
> It feels like an easy mistake to make, and maybe there could be a way to make it more obvious.
>
> Sincerely,
> Marc
>
>

Right, it seems that this feature is sort of half-baked.

In the desktop lands the way forward, I think, is implementing of
org.freedesktop.home1 DBus interface and teaching display managers to
invoke it. For the console usage we can modify login(1) to ask for a
passphrase and mount the dataset if needed. Maybe this functionality
should even be sinked down to a PAM module to deduplicate the common
code.