Snap应用程序不会看到来自其他分区的文件

我在Ubuntu 17.10上安装了KeePassXC snap包。 我在同一个驱动器上安装了多个Linux系统,因此我将大多数我的主文件夹(如〜/ Documents)创建为链接到单独的ext4分区(用户具有相同的uid,因此权限是正确的)。 我试图在Documents中打开我的密码数据库,但是keepassxc看不到Documents中的任何文件。 如果我把文件放在我的主文件夹中,那么它就会看到它。

快照包是否能够从我的主文件夹中找到文件? 任何方法使KeePassXC(和其他快照包)访问我单独的ext4分区(可能在某处的某些配置)的文件?

快照通常是受限制的。 默认情况下,快照只能访问自己的可写区域,但是它们可以通过接口获得权限。 有两个接口可以访问超出默认值的文件: home接口和removable-media接口。 我假设KeePassXC使用home接口,这是你如何访问~/Documents 。 也许它甚至使用removable-media界面,但只包括安装在/media 。 如果您的其他分区已安装在其他位置,则该快照将无权遵循符号链接。

按困难排序的方法:

  1. 将分区挂载到主目录而不是对它们进行符号链接。
  2. 将分区挂载到/media并确保KeePassXC使用removable-media接口。 这可能是上游变化,但可能是小变化。
  3. 将KeePassXC变成经典的快照,从而使其不再受到严格限制。 这是一个更大的变化,上游可能对此不感兴趣。

更新: KeyPassXC snapcraft.yaml就在这里 。 看起来它已经有了removable-media界面。 您需要做的就是(2)连接它(它没有自动连接):

 $ sudo snap connect keepassxc:removable-media