จะเรียกใช้แอปพลิเคชัน flatpak ด้วยสิทธิ์ระบบไฟล์ได้อย่างไร
ฉันติดตั้งแอป Byte (com.github.alainm23.byte) จากรีโมต flathub ผ่าน flatpak นั่นคือแอพเครื่องเล่นเพลง คลังเพลงของฉันจะถูกเก็บไว้ในรูปแบบ 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
ตัวเลือกให้กับคำสั่ง 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
ให้กับคำสั่งแก้ปัญหาและมันไม่จำเป็นต้องoverride
sudo
flatpak override --user --filesystem=/media com.github.alainm23.byte
ตอนนี้แอปสามารถเข้าถึงระบบไฟล์ดังกล่าวได้เมื่อเปิดจากเมนูระบบและแม้กระทั่งจากเชลล์โดยไม่ระบุการอนุญาต ( flatpak run com.github.alainm23.byte
)