![如何始终以文件系统权限运行 Flatpak 应用程序?](https://linux22.com/image/178868/%E5%A6%82%E4%BD%95%E5%A7%8B%E7%BB%88%E4%BB%A5%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E6%9D%83%E9%99%90%E8%BF%90%E8%A1%8C%20Flatpak%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%EF%BC%9F.png)
我通过 flatpak 从 flathub 远程安装了 Byte (com.github.alainm23.byte) 应用程序。那是一个音乐播放器应用程序。我的音乐库存储在与我的系统不同的硬盘中,该硬盘在启动时正确安装在/media/myuser/D2
。
自从Flatpak 应用程序对主机环境的访问受到限制我必须向应用程序提供文件系统权限,以便它可以访问所需的路径。
根据文档我可以使用run
和override
命令设置该权限。
当我从终端启动应用程序时,flatpak run --filesystem=/media com.github.alainm23.byte
它按预期工作,并且应用程序可以访问所需的路径。
但是,当我从系统菜单启动应用程序时,该应用程序无法访问该路径。我认为通过使用文件系统权限 ( ) 运行覆盖命令sudo flatpak override --filesystem=/media com.github.alainm23.byte
可以解决问题,并允许应用程序访问该路径,即使从系统菜单启动,甚至在没有权限 ( flatpak run com.github.alainm23.byte
) 的情况下从终端运行时也是如此,但它没有,我什至重新启动了我的机器来测试它。
当我运行flatpak override --show com.github.alainm23.byte
它时输出:
[Context]
filesystems=/media;
这让我认为权限设置正确。
设置覆盖后,如果我在没有权限 ( flatpak run com.github.alainm23.byte
) 的情况下从终端运行它,当尝试访问应用程序中的文件系统时,它会输出:
(com.github.alainm23.byte:2): Gtk-WARNING **: 11:40:55.105: Failed to measure available space: Erro ao obter informações do sistema de arquivos para /media/myuser/D2: No such file or directory
那么,如何才能从系统菜单启动具有访问权限的应用程序/media
呢?
以下是一些可能有用的系统信息
myuser@pop-os:~$ inxi --system
System: Host: pop-os Kernel: 5.4.0-7634-generic x86_64 bits: 64 Desktop: Gnome 3.36.4
Distro: Pop!_OS 20.04 LTS
myuser@pop-os:~$ flatpak --version
Flatpak 1.6.5
答案1
长话短说
如果应用程序是“用户范围”安装的,请将该--user
选项添加到覆盖命令中:
flatpak override --user --filesystem=/media com.github.alainm23.byte
详细的
所以,经过深思熟虑并阅读了关于 flatpak 桌面条目的 github 问题(此时我正在考虑通过手动调整来解决),我明白发生了什么。
基本上,flatpak install
默认情况下安装“系统范围”的应用程序。不过我是从 Pop!_Shop(发行版商店)安装的。我意识到该应用程序不在系统文件夹 ( /var/lib/flatpak/app
) 中,而是在用户文件夹 ( ~/.local/share/flatpak/app
) 中。因此,我可以得出结论,Pop!_Shop 在“用户范围内”安装了该应用程序。
当我回去flatpak override --filesystem=/media com.github.alainm23.byte
时,它会抱怨,我只是在sudo
它前面加上它,它就起作用了。当时我没有意识到这样做只会将覆盖设置为“系统范围安装”,并且应用程序会安装为“用户范围”。
--user
因此,在命令中添加该选项override
可以解决问题,并且不需要sudo
.
flatpak override --user --filesystem=/media com.github.alainm23.byte
现在,当从系统菜单甚至从 shell 启动时,应用程序可以访问上述文件系统,而无需指定权限 ( flatpak run com.github.alainm23.byte
)。