Snap 应用程序看不到另一个分区的文件

Tha*_*lou 22 partitioning snap

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

snap 包是否能够从我的主文件夹中找到外部文件?有什么方法可以让 KeePassXC(和其余的 snap 包)访问我单独的 ext4 分区(可能是某处的某些配置)中的文件?

kyr*_*ofa 21

快照通常是受限的。默认情况下,snap 只能访问它们自己的可写区域,但它们可以通过接口获得权限。有两个接口可以提供访问默认文件之外的文件的能力:home接口和removable-media接口。我假设 KeePassXC 使用该home接口,这就是您可以访问~/Documents. 也许它甚至使用removable-media接口,但这仅涵盖安装到/media或 中的内容/mnt。如果您的其他分区安装在其他地方,则快照将无权遵循符号链接。

使这项工作的方法,按难度排序:

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

更新: KeyPassXCsnapcraft.yaml这里。好像已经有removable-media接口了。遵循 (2) 所需要做的就是连接它(它不会自动连接):

$ sudo snap connect keepassxc:removable-media
Run Code Online (Sandbox Code Playgroud)

  • 错误:快照“keepassxc”没有名为“removable-media”的插件 (2认同)
  • @Erdnase 是否安装了 keepassxc? (2认同)

小智 5

我在 Ubuntu 20.04 上的 makemkv snap 应用程序中遇到了类似的问题

我能够通过绑定安装解决这个问题:

sudo mount --bind /data/wip /home/user/Videos/wip
Run Code Online (Sandbox Code Playgroud)

这允许我将我的数据驱动器安装到 /home/ 树中,以便 snap 应用程序可以像上面提到的 Kyle 一样访问它。