Uvoľnenie systému samostatných balíkov Flatpak 1.14.0

Bola zverejnená nová stabilná verzia nástroja Flatpak 1.14, ktorý poskytuje systém na zostavovanie samostatných balíkov, nezávislých od konkrétnych distribúcií Linuxu a spúšťaných v špeciálnych kontajneroch, ktoré izolujú aplikáciu od zvyšku systému. Podpora pre spúšťanie balíkov Flatpak je zabezpečená pre Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint, Alt Linux a Ubuntu. Balíky Flatpak sú zahrnuté v repozitári Fedora a sú podporované v štandardnom správcovi aplikácií GNOME.

Kľúčové novinky vo verzii Flatpak 1.14:

  • Zabezpečené vytvorenie adresára pre súbory v stave (.local/state) a nastavenie premennej prostredia XDG_STATE_HOME, ktorá odkazuje na tento adresár.
  • Pridané podmienkové kontroly typu „have-kernel-module-názov“ na overenie prítomnosti modulov jadra (univerzálny ekvivalent predtým ponúkanej kontrole have-intel-gpu, namiesto ktorej teraz možno použiť výraz „have-kernel-module-i915“).
  • Implementovaný príkaz „flatpak document-unexport —doc-id=…“.
  • Zabezpečený export metadát Appstream na použitie v hlavnom prostredí.
  • Pridane pravidlá automatického doplňovania príkazov flatpak pre príkazový riadok Fish.
  • Povolený sieťový prístup k službám X11 a PulseAudio (po pridaní príslušných nastavení).
  • Hlavná vetva v Git repozitári bola premenovaná z „master“ na „main“, pretože slovo „master“ sa v poslednej dobe považuje za politicky nekorektné.
  • Zabezpečené prepísanie spúšťacích skriptov v prípade premenovania aplikácie.
  • Do príkazu install boli pridané možnosti „—include-sdk“ a „—include-debug“ na inštaláciu SDK a súborov debuginfo.
  • Do súborov flatpakref a flatpakrepo bola pridaná podpora parametra „DeploySideloadCollectionID“, pri jehož inštalácii bude identifikátor kolekcie nastavený pri pridávaní vzdialeného repozitára a nie po stiahnutí metadát.
  • Povolené vytváranie vnorených sandboxových prostredí pre spracovateľov v sesionoch s oddelenými názvami MPRIS (Media Player Remote Interfacing Specification).
  • V príkazových nástrojoch zabezpečený výstup informácií o použití zastaraných runtime rozšírení.
  • V príkaze uninstall implementovaná žiadosť o potvrdenie pred odstránením runtime alebo runtime rozšírení, ktoré sa ešte používajú.
  • Do príkazov ako „flatpak run“ bola pridaná podpora pre možnosť „—socket=gpg-agent“.
  • V libostree bola odstránená zraniteľnosť, ktorá potenciálne umožňuje používateľovi odstraňovať ľubovoľné súbory v systéme prostredníctvom manipulácie s nástrojom flatpak-system-helper (odoslaním požiadavky na odstránenie so špeciálne upraveným názvom vetvy). Problém sa prejavuje iba v starších verziách Flatpak a libostree, ktoré boli vydané pred rokom 2018 (< 0.10.2) a netýka sa aktuálnych vydaní.

Pripomeňme, že Flatpak poskytuje vývojárom aplikácií možnosť zjednodušiť distribúciu svojich programov, ktoré nie sú súčasťou štandardných repozitárov distribúcií, zhotovením jedného univerzálneho kontajnera bez potreby vytvárania osobitných zostáv pre každú distribúciu. Používateľom, ktorí sa zaujímajú o bezpečnosť, Flatpak umožňuje spustiť problematickú aplikáciu v kontajneri, ktorý poskytuje prístup len k sieťovým funkciám a súborom súvisiacim s aplikáciou. Používateľom, ktorí sa zaujímajú o novinky, Flatpak umožňuje inštaláciu najnovších testovacích a stabilných vydaní aplikácií bez nutnosti zasahovania do systému. Napríklad, Flatpak balíky sú vytvorené pre LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 A.D., Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio a iné.

Aby sa zmenšila veľkosť balíka, obsahuje iba závislosti špecifické pre aplikáciu, zatiaľ čo základné systémové a grafické knižnice (GTK, Qt, knižnice GNOME a KDE a pod.) sú spracované ako pripojiteľné typové runtime prostredia. Kľúčový rozdiel medzi Flatpak a Snap spočíva v tom, že Snap využíva komponenty prostredia hlavného systému a izoláciu na základe filtrovania systémových volaní, zatiaľ čo Flatpak vytvára samostatný kontajner od systému a manipuluje s veľkými runtime súpravami, poskytujúc ako závislosti nie balíky, ale typové systémové prostredia (napríklad všetky knižnice potrebné na fungovanie programov GNOME alebo KDE).

Okrem typického systémového prostredia (runtime), ktoré sa inštaluje prostredníctvom špeciálneho repozitára, sa dodávajú ďalšie závislosti (bundle), ktoré sú potrebné na fungovanie aplikácie. Spoločne runtime a bundle tvoria obsah kontajnera, pričom runtime sa inštaluje samostatne a viaže sa priamo na niekoľko kontajnerov, čo umožňuje vyhnúť sa duplicite spoločných systémových súborov pre kontajnery. V jednom systéme môže byť nainštalovaných niekoľko rôznych runtime (GNOME, KDE) alebo niekoľko verzií jedného runtime (GNOME 3.40, GNOME 3.42). Kontajner s aplikáciou ako závislosť využíva viazanie len k určitému runtime, bez ohľadu na jednotlivé balíky, z ktorých sa runtime skladá. Všetky chýbajúce prvky sa zbalí priamo spolu s aplikáciou. Pri tvorbe kontajnera sa obsah runtime montuje ako oddiel /usr, a bundle sa montuje do adresára /app.

Obsah runtime a kontajnerov aplikácií sa formuje pomocou technológie OSTree, pri ktorej sa obraz atomárne aktualizuje z Git-podobného úložiska, umožňujúceho aplikovať metódy verzionovania na komponenty distribúcie (napríklad, systém možno rýchlo vrátiť do predchádzajúceho stavu). RPM balíky sa transcibujú do repozitára OSTree pomocou špeciálnej medzičlánku rpm-ostree. Samostatná inštalácia a aktualizácia balíkov v pracovnom prostredí nie je podporovaná, systém sa aktualizuje nie na úrovni jednotlivých komponentov, ale celkovo, atomárne mení svoj stav. Poskytujú sa prostriedky na inkrementálne uplatňovanie aktualizácií, ktoré zbavujú potreby úplnej výmeny obrazu pri každej aktualizácii.

Tvorené izolované prostredie je úplne nezávislé od používaného distribučného systému a pri správnom nastavení balíka nemá prístup k súborom a procesom používateľa alebo hlavného systému, nemôže priamo komunikovať s hardvérom, okrem výstupu cez DRI, a komunikácie so sieťovým subsystémom. Výstup grafiky a organizácia vstupu sú realizované pomocou protokolu Wayland alebo cez prenos socketu X11. Interakcia s vonkajším prostredím je postavená na systéme výmeny správ DBus a špeciálnom API Portals.

Na izoláciu sa používa vrstva Bubblewrap a tradičné technológie kontajnerovej virtualizácie pre Linux, ktoré sú založené na použití cgroups, namespaces, Seccomp a SELinux. Na výstup zvuku sa používa PulseAudio. Izoláciu je možné vypnúť, čo využívajú vývojári mnohých populárnych balíkov, aby získali plný prístup k FS a všetkým zariadeniam v systéme. Napríklad balíky GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity a VLC sa dodávajú s obmedzeným režimom izolácie, ktorý ponecháva plný prístup k domovskému adresáru. V prípade kompromitácie balíkov s prístupom k domovskému adresáru, napriek označeniu "sandboxed" v popise balíka, útočníkovi na vykonanie svojho kódu stačí zmeniť súbor ~/ .bashrc. Osobitnou otázkou je kontrola zmien v balíkoch a dôvera k zostavovateľom balíkov, ktorí často nie sú prepojení s hlavným projektom alebo distribúciami.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster