Snap application doesn't see files from another partition
Snaps are typically confined. By default snaps can access nothing but their own writable areas, but they can gain permissions by way of interfaces. There are two interfaces that provide the ability to access files beyond the default: the home
interface, and the removable-media
interface. I assume KeePassXC uses the home
interface, which is how you can access ~/Documents
. Perhaps it even uses the removable-media
interface, but that only covers stuff mounted into /media
or /mnt
. If your other partitions are mounted elsewhere, the snap will not have permission to follow the symlinks.
The ways to make this work, ordered by difficulty:
- Mount the partitions into your home directory rather than symlinking them.
- Mount the partitions into
/media
and ensure KeePassXC uses theremovable-media
interface. This may be an upstream change, but a small one. - Change KeePassXC into a classic snap, thereby making it no longer strictly confined. This is a larger change and upstream may not be interested in it.
Update: The KeyPassXC snapcraft.yaml
is here. Looks like it already has the removable-media
interface. All you need to do to follow (2) is to connect it (it's not automatically connected):
$ sudo snap connect keepassxc:removable-media
I ran into a similar issue with the makemkv snap application on Ubuntu 20.04
I was able to solve the issue with a bind mount:
sudo mount --bind /data/wip /home/user/Videos/wip
This allowed me to mount my data drive into the /home/ tree so the snap application can access it like Kyle mentioned above.