Flatpak

如何始終以文件系統權限執行 flatpak 應用程序?

  • August 25, 2020

我通過 flatpak 從 flathub 遠端安裝了 Byte (com.github.alainm23.byte) 應用程序。那是一個音樂播放器應用程序。我的音樂庫儲存在我的系統之外的另一個 HD 中,該系統在啟動時正確安裝在/media/myuser/D2.

由於flatpak 應用程序對主機環境的訪問受到限制,我必須為應用程序提供文件系統權限,以便它可以訪問所需的路徑。

根據文件run,我可以使用andoverride命令設置該權限。

當我使用它從終端啟動應用程序時,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

TL;博士

如果應用程序是“使用者範圍”安裝的,則將--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做準備,它起作用了。那時我沒有意識到這樣做只會將覆蓋設置為“系統範圍的安裝”,並且該應用程序是“使用者範圍的”安裝的。

因此,將選項添加--useroverride命令可以解決問題,並且不需要sudo.

flatpak override --user --filesystem=/media com.github.alainm23.byte

現在,當從系統菜單甚至從 shell 啟動時,應用程序可以訪問上述文件系統,而無需指定權限 ( flatpak run com.github.alainm23.byte)。

引用自:https://unix.stackexchange.com/questions/605285