จะเรียกใช้แอปพลิเคชัน flatpak ด้วยสิทธิ์ระบบไฟล์ได้อย่างไร

Aug 20 2020

ฉันติดตั้งแอป Byte (com.github.alainm23.byte) จากรีโมต flathub ผ่าน flatpak นั่นคือแอพเครื่องเล่นเพลง คลังเพลงของฉันจะถูกเก็บไว้ในรูปแบบ HD /media/myuser/D2อีกกว่าระบบของฉันซึ่งเป็นที่ถูกต้องถูกติดตั้งอยู่ที่เริ่มต้นที่

เนื่องจากแอป flatpak มีการเข้าถึงสภาพแวดล้อมโฮสต์ที่ จำกัดฉันจึงต้องให้สิทธิ์ระบบไฟล์แก่แอปเพื่อให้สามารถเข้าถึงเส้นทางที่ต้องการได้

ตามเอกสารฉันสามารถตั้งค่าการอนุญาตนั้นด้วยคำสั่งrunandoverride

เมื่อฉันเปิดแอปจากเทอร์มินัลโดยใช้แอป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

คำตอบ

2 avila Aug 25 2020 at 17:47

TL; ดร

หากติดตั้งแอป "ทั่วทั้งผู้ใช้" ให้เพิ่ม--userตัวเลือกให้กับคำสั่ง override:

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

รายละเอียด

ดังนั้นหลังจากคิดมากและอ่านปัญหา github เกี่ยวกับรายการเดสก์ท็อป flatpak (ณ จุดนี้ฉันคิดว่าจะแก้ปัญหาด้วยการปรับแต่งด้วยตนเอง) ฉันเข้าใจสิ่งที่เกิดขึ้น

โดยทั่วไปflatpak installจะติดตั้งแอป "ทั้งระบบ" ตามค่าเริ่มต้น อย่างไรก็ตามฉันติดตั้งจาก Pop! _Shop (distro store) ฉันรู้ว่าแอปไม่ได้อยู่ในโฟลเดอร์ระบบ ( /var/lib/flatpak/app) แต่อยู่ในโฟลเดอร์ผู้ใช้ ( ~/.local/share/flatpak/app) ด้วยเหตุนี้ฉันจึงสรุปได้ว่า Pop! _Shop ติดตั้งแอป "ทั้งผู้ใช้"

เมื่อฉันวิ่งflatpak override --filesystem=/media com.github.alainm23.byteย้อนกลับไปมันจะบ่นและฉันก็แค่นำหน้าsudoมันและมันก็ใช้งานได้ ในเวลานั้นฉันไม่ทราบว่าการทำเช่นนั้นจะเป็นการตั้งค่าการแทนที่เป็น "การติดตั้งทั้งระบบ" และแอปได้รับการติดตั้ง "ทั้งผู้ใช้"

ดังนั้นการเพิ่มตัวเลือก--userให้กับคำสั่งแก้ปัญหาและมันไม่จำเป็นต้องoverridesudo

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

ตอนนี้แอปสามารถเข้าถึงระบบไฟล์ดังกล่าวได้เมื่อเปิดจากเมนูระบบและแม้กระทั่งจากเชลล์โดยไม่ระบุการอนุญาต ( flatpak run com.github.alainm23.byte)