Pas dy vjet e gjysmë zhvillimi, është publikuar dega e re e qëndrueshme e mjetit Flatpak 1.16, e cila ofron një sistem për ndërtimin e paketave të vetë-mjaftueshme, të cilat nuk janë të lidhura me distribuime specifike të Linux-it dhe ekzekutohen në një kontejner të veçantë që izolon aplikacionin nga pjesa tjetër e sistemit. Mbështetja për ekzekutimin e paketave Flatpak është siguruar për Fedora, CentOS, Debian, Arch Linux, Gentoo, Linux Mint, Alt Linux dhe Ubuntu. Paketat me Flatpak janë përfshirë në repozitorin e Fedora-s dhe mbështeten në programet menaxhuese të aplikacioneve GNOME dhe KDE.
Risi kryesore në degën Flatpak 1.16:
- Janë bërë kalimi në përdorimin e sistemit të ndërtimit Meson. Mbështetje për ndërtim duke përdorur mjetet Autotools është ndalur. Tani për ndërtimin e Flatpak kërkohet që në sistem të jetë i instaluar Python, të paktën versioni 3.5.
- ĂshtĂ« realizuar ndarja e aksesit nĂ« socketin gssproxy, i cili lejon pĂ«rdorimin e autentifikimit pĂ«rmes Kerberos nĂ« aplikacionet qĂ« ekzekutohen nĂ« modin e izolimit sandbox.
- Kur krijohet njĂ« socket pĂ«r Wayland, Ă«shtĂ« angazhuar zgjerimi security-context, pĂ«rmes tĂ« cilit kompozitori server mund tĂ« identifikojĂ« dhe kufizojĂ« aplikacionet qĂ« ekzekutohen nĂ« modin e izolimit sandbox. ĂshtĂ« shtuar opsioni "âsocket=inherit-wayland-socket" pĂ«r trashĂ«gimin e socket-it ekzistues pĂ«r Wayland.
- Pas instalimit ose përmirësimit të aplikacioneve, është siguruar rinovimi automatik i konfigurimit të autobusit sesional D-Bus për të kapur shërbimet e reja të eksportuara nga aplikacionet.
- Distribuimeve u është dhënë mundësia të përcaktojnë repozitorët me paketat Flatpak, duke përdorur katalogun "/usr/share/flatpak/remotes.d", përveç "/etc/flatpak/remotes.d".
- ĂshtĂ« punuar pĂ«r tĂ« ndarĂ« skedarĂ«t e mĂ«dhenj me kod burimor nĂ« module tĂ« vogla.
- ĂshtĂ« shtuar opsioni "âdevice=input" pĂ«r aksesin nĂ« pajisjet e hyrjes pĂ«rmes /dev/input.
- PĂ«r izolimin e aplikacioneve Ă«shtĂ« pĂ«rdorur dega e re e mjetit bubblewrap 0.11. NĂ« distribucione qĂ« ndĂ«rtuan Flatpak duke pĂ«rdorur skedarin ekzekutiv bwrap tĂ« sistemit, kĂ«rkohet tĂ« paktĂ«n versioni 0.11 i bubblewrap. ĂshtĂ« forcuar mbrojtja nga krijimi i hapĂ«sirave tĂ« brendshme tĂ« identifikuesve tĂ« pĂ«rdoruesve (user namespace) nĂ« ambientet sandbox.
- ĂshtĂ« thjeshtuar konfigurimi i gjuhĂ«ve tĂ« tjera. ĂshtĂ« siguruar pĂ«rcaktimi i gjuhĂ«ve mbi bazĂ«n e informacionit pĂ«r pĂ«rdoruesit tĂ« dhĂ«nĂ« nga shĂ«rbimi DBus i AccountsService.
- Aplikacioneve qĂ« pĂ«rdorin izolimin sandbox tĂ« brendshĂ«m, pĂ«r shembull, mbi bazĂ«n e motorit WebKit, u lejohet pĂ«rdorimi i protokollit AT-SPI pĂ«r ndĂ«rveprimin me lexuesit e ekranit. ĂshtĂ« shtuar opsioni "flatpak run âa11y-own-name" pĂ«r tĂ« zgjedhur autobusit, pĂ«rmes tĂ« cilit bĂ«het aksesi nĂ« mjetet pĂ«r njerĂ«zit me aftĂ«si tĂ« kufizuara.
- Kur ekzekutohet komanda "flatpak run -vv ", është siguruar shfaqja e të gjitha parametërve të aplikueshëm të izolimit sandbox.
- ĂshtĂ« shtuar opsioni "âdevice=usb", si dhe parametrat "âusb" dhe "âno-usb" pĂ«r tĂ« menaxhuar aksesin e aplikacioneve nĂ« pajisjet USB.
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r kuadrin KCompletion, i cili pĂ«rdoret pĂ«r autocompletimin e fjalĂ«ve kyçe nĂ« KDE.
- ĂshtĂ« shtuar variablat e ambientit "FLATPAK_DATA_DIR" dhe "FLATPAK_DOWNLOAD_TMPDIR" pĂ«r tĂ« rikuperuar katalogĂ«t e tĂ« dhĂ«nave (/usr/share/flatpak) dhe skedarĂ«t e pĂ«rkohshĂ«m tĂ« shkarkuar (/var/tmp).
- ĂshtĂ« shtuar dalja e sekuencave tĂ« escape pĂ«r tĂ« treguar progresin e ekzekutimit tĂ« operacioneve nĂ« emulatorĂ«t e terminalit.
Të kujtojmë se Flatpak lehtëson shpërndarjen e programeve që nuk janë në repozitorët standardë të distribuimeve, duke përgatitur një kontejner universale, duke çliruar zhvilluesit e programeve nga nevoja për të formuar ndërtimet e veçanta për secilën distribucion. Përdoruesve që u intereson siguria, Flatpak u ofron mundësinë për të ekzekutuar një aplikacion të dyshimtë në një kontejner, duke ofruar akses selektiv vetëm në funksionet e nevojshme rrjetë dhe skedarët e përdoruesit. Përdoruesve që janë të interesuar për novitete, Flatpak u lejon të instalojnë versionet më të fundit beta dhe stabile të aplikacioneve pa nevojën për të bërë ndryshime në sistem. Për shembull, paketat Flatpak janë ndërtuar për LibreOffice, GIMP, Inkscape, Kdenlive, Steam, 0 A.D., Visual Studio Code, VLC, Slack, Telegram Desktop, Android Studio, etj.
Për të zvogëluar madhësinë, në paketë përfshihen vetëm varësitë specifike për aplikacionin. Bibliotekat bazë sistemore dhe grafike (GTK, Qt, bibliotekat GNOME dhe KDE, etj.) ofrohen në formën e runtime-ambienteve tipike të lidhura. Dallimi kryesor midis Flatpak dhe Snap është se Snap përdor komponentët e ambientit të sistemit kryesor dhe izolimin të bazuar në filtrimin e thirrjeve të sistemit, ndërsa Flatpak krijon një kontejner të veçantë nga sistemi dhe operon me grupe të mëdha runtime, duke ofruar si varësi, jo paketa, por ambiente sistemore tipike (p.sh., të gjitha bibliotekat e nevojshme për funksionimin e programeve GNOME ose KDE).
Përveç ambientit standart sistemor (runtime), i cili instalohet përmes një depoje të veçantë, ofrohen varësi shtesë (bundle), të nevojshme për funksionimin e aplikacionit. Në përmbledhje, "runtime" dhe "bundle" formojnë mbushjen e kontejnerit, duke qenë se "runtime" instalohet veçmas dhe lidhet menjëherë me disa kontejnerë, duke lejuar kështu shmangien e dyfishimit të skedarëve sistemorë të përgjithshëm për kontejnerët.
Në një sistem mund të jenë të instaluara disa "runtime" të ndryshme (GNOME, KDE) ose disa versione të një "runtime" të vetëm (GNOME 46, GNOME 47). Kontejneri i aplikacionit si varësi përdor lidhjen vetëm me një "runtime" të caktuar, pa marrë parasysh paketat e veçanta që formojnë atë "runtime" të zgjedhur. Të gjitha elementet e munguar paketohen drejtpërdrejt me aplikacionin. Kur krijohet kontejneri, përmbajtja e "runtime" montimi si pjesë /usr, ndërsa "bundle" montimi në katalogun /app.
Përmbajtja e "runtime" dhe konteinerëve të aplikacioneve formohet duke përdorur teknologjinë OSTree, e cila lejon që imazhi të përditësohet në mënyrë atomike nga një depo si Git, duke lejuar që metodat e kontrollit të versionit të aplikohen mbi komponentët e distribucionit (për shembull, është e mundur të rikthehet sistemi shpejt në një gjendje të kaluar). RPM-paketat transliterohen në depozitat OSTree përmes një shtrese rpm-ostree.
Instalimi dhe pĂ«rditĂ«simi selektiv i pakove brenda mjedisit tĂ« punĂ«s nuk mbĂ«shtetet â sistemi pĂ«rditĂ«sohet si njĂ« e tĂ«rĂ«, duke ndryshuar nĂ« mĂ«nyrĂ« atomike gjendjen e tij. Ofrohen mjete pĂ«r zbatimin inkremental tĂ« pĂ«rditĂ«simeve, duke eliminuar nevojĂ«n pĂ«r njĂ« zĂ«vendĂ«sim tĂ« plotĂ« tĂ« imazhit me çdo pĂ«rditĂ«sim.
Mjedisi i izoluar i formuar është krejtësisht i pavarur nga distribuimi i përdorur dhe, me konfigurimin e duhur të paketës, nuk ka akses në skedarët dhe proceset e përdoruesit ose të sistemit kryesor, as nuk mund të aksesojë drejtpërdrejt harduerin, përveç daljeve përmes DRI. Dalja grafike dhe organizimi i inputit realizohen përmes protokollit Wayland ose përmes kalimit të soketëve X11. Ndërveprimi me mjedisin e jashtëm është i ndërtuar përmes sistemit të shkëmbimit të mesazheve DBus dhe një API të veçantë Portals.
Për izolimin përdoret një ndërfaqe Bubblewrap dhe teknologji tradicionale për virtualizimin në Linux, të bazuara në përdorimin e cgroups, hapësirave të emrave (namespaces), Seccomp dhe SELinux. Për daljen e zërit përdoret PulseAudio ose PipeWire. Kur krijohet një paketë, izolimi mund të çaktivizohet, çka shfrytëzohet nga zhvilluesit e shumë paketave të njohura për të arritur qasje të plotë në sistemin e skedarëve dhe të gjitha pajisjeve në sistem.
Për shembull, me një mod ushtarak izolimi që lë akses të plotë në katalogun e shtëpisë, ofrohen paketat GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity dhe VLC. Në rast të kompromiseve të paketave me akses në katalogun e shtëpisë, pavarësisht nga pranimi i etiketës "sandboxed" në përshkrimin e paketës, vetëm një ndryshim i skedarit ~/ .bashrc është i mjaftueshëm për sulmuesin për të ekzekutuar kodin e tij. Një çështje e veçantë është kontrolli mbi ndryshimet e paketave dhe besimi te ndërtuesit e paketës, të cilët shpesh nuk janë të lidhur me projektin kryesor ose distribuimet.
Burimi: opennet.ru
