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


15

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

快照程序包是否可以从我的主文件夹中查找文件?有什么方法可以使KeePassXC(和其余的snap软件包)访问我单独的ext4分区(可能在某处进行一些配置)中的文件?


我认为禁止跨分区使用硬链接!
George Udosen '17

2
乔治,我怀疑它们是符号链接。
凯尔(Kyle)

Answers:


15

快照通常是受限的。默认情况下,快照只能访问其自己的可写区域,但是它们可以通过界面获取权限。有两个接口可以访问默认值以外的文件:home接口和removable-media接口。我假设KeePassXC使用home接口,这是您可以访问的方式~/Documents。也许它甚至使用了removable-media接口,但是只覆盖了/media或中安装的内容/mnt。如果其他分区安装在其他位置,则快照将无权遵循符号链接。

进行此工作的方式,按难度排序:

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

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

$ sudo snap connect keepassxc:removable-media

多谢!!真的很好的解释,命令sudo snap connect keepassxc:removable-media就成功了!!
Thanos Apostolou

2
错误:快照“ keepassxc”没有名为“ removable-media”的插件
Erdnase

2
@Erdnase是否安装了keepassxc?
塔罗尔

惊人 !但没有我的分区安装在媒体,媒体是为移动存储......怎么会如此尴尬的系统设计
Yota公司

0

这是使快照应用程序像经典安装一样运行的快速解决方案,即没有限制。

只需将指向二进制文件的符号链接创建到/ usr / local / bin中,如下所示:

/ usr / local / bin / pdftk-> / snap / pdftk / current / usr / bin / pdftk

(令人惊讶的是,正在使用“限制:严格”来设置此特定应用程序,这很烦人,因为它实际上无法在其他文件系统上的文件上运行。)


这是一个坏主意-在不使用其定义的应用程序的情况下,在快照之外运行二进制文件通常会失败,因为它无法获取所需的所有环境变量。即使它运行,它也将是无限制的,并且最终将在不应有的位置写入数据。
凯尔

0

只是为了增加Kyle的答案Ubuntu Software Store中的某些软件包也需要此命令。

就我而言,kdenlive无法读取其他硬盘。以下命令有效:

sudo snap connect kdenlive:removable-media
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.