Uitgave van het systeem voor zelfvoorzienende pakketten Flatpak 1.14.0

Een nieuwe stabiele release van de Flatpak-toolset 1.14 is gepubliceerd, waarmee een systeem wordt geboden voor het bouwen van zelfstandige pakketten die niet aan specifieke Linux-distributies zijn gebonden en die draaien in een speciale container die de applicatie van de rest van het systeem isoleert. De ondersteuning voor het uitvoeren van Flatpak-pakketten is beschikbaar voor Arch Linux, CentOS, Debian, Fedora, Gentoo, Mageia, Linux Mint, Alt Linux en Ubuntu. Flatpak-pakketten zijn opgenomen in de repository van Fedora en worden ondersteund in de standaard applicatiebeheersoftware GNOME.

Belangrijke vernieuwingen in de Flatpak 1.14-release:

  • Er is een map voor bestanden gecreëerd in de staat (.local/state) en er is een omgevingsvariabele XDG_STATE_HOME ingesteld die naar deze map verwijst.
  • Er zijn conditionele controles toegevoegd zoals 'have-kernel-module-naam' om de aanwezigheid van kernelmodules te bepalen (de universele tegenhanger van de eerder voorgestelde controle 'have-intel-gpu', waar nu de expressie 'have-kernel-module-i915' voor kan worden gebruikt).
  • De opdracht 'flatpak document-unexport —doc-id=…' is geïmplementeerd.
  • Appstream metadata-export is mogelijk gemaakt voor gebruik in de hoofdomgeving.
  • Automatische aanvulregels voor flatpak-opdrachten zijn toegevoegd voor de Fish-shell.
  • Netwerktoegang tot X11- en PulseAudio-services is toegestaan (bij het toevoegen van de juiste instellingen).
  • De hoofdbranch in de Git-repository is hernoemd van 'master' naar 'main', omdat het woord 'master' de laatste tijd als politiek incorrect wordt beschouwd.
  • Het herschrijven van opstartscripts is mogelijk gemaakt in geval van het hernoemen van een applicatie.
  • De install-opdracht heeft de opties '—include-sdk' en '—include-debug' toegevoegd voor de installatie van SDK- en debuginfo-bestanden.
  • De flatpakref en flatpakrepo-bestanden hebben ondersteuning gekregen voor de parameter 'DeploySideloadCollectionID', waarmee de collectienaam tijdens het toevoegen van de externe repository wordt ingesteld, en niet na het downloaden van de metadata.
  • Het is toegestaan om geneste sandbox-omgevingen te creëren voor handlers in sessies met afzonderlijke MPRIS-namen (Media Player Remote Interfacing Specification).
  • In de opdrachtregelhulpmiddelen zijn gegevens over het gebruik van verouderde runtime-extensies weergegeven.
  • In de uninstall-opdracht is een bevestigingsprompt geïmplementeerd voordat runtime of runtime-extensies die nog in gebruik zijn worden verwijderd.
  • Ondersteuning voor de optie '—socket=gpg-agent' is toegevoegd aan opdrachten zoals 'flatpak run'.
  • In libostree is de kwetsbaarheid verholpen die een gebruiker in staat zou kunnen stellen willekeurige bestanden in het systeem te verwijderen via manipulatie met de flatpak-system-helper handler (door een verwijderverzoek te sturen met een speciaal opgemaakt taknaam). Het probleem doet zich alleen voor in oude versies van Flatpak en libostree die zijn uitgebracht vóór 2018 (< 0.10.2) en heeft geen invloed op actuele versies.

Laten we niet vergeten dat Flatpak-ontwikkelaars de mogelijkheid biedt om de distributie van hun programma's te vereenvoudigen, die niet in de standaardrepositories van distributies zitten, door één universele container voor te bereiden zonder afzonderlijke builds voor elke distributie. Voor gebruikers die zich zorgen maken over veiligheid, stelt Flatpak hen in staat om een twijfelachtig programma in een container uit te voeren, met alleen toegang tot netwerkfuncties en bestanden van de gebruiker die verband houden met het programma. Voor gebruikers die geïnteresseerd zijn in nieuwigheden, maakt Flatpak het mogelijk om de nieuwste test- en stabiele versies van applicaties te installeren zonder wijzigingen in het systeem aan te brengen. Bijvoorbeeld, Flatpak-pakketten worden verzameld voor LibreOffice, Midori, GIMP, Inkscape, Kdenlive, Steam, 0 A.D., Visual Studio Code, VLC, Slack, Skype, Telegram Desktop, Android Studio, enzovoort.

Om de pakketgrootte te verminderen, bevat het alleen de applicatiespecifieke afhankelijkheden, terwijl de basis systeem- en grafische bibliotheken (GTK, Qt, GNOME- en KDE-bibliotheken, enz.) worden gepresenteerd als optionele standaard runtime-omgevingen. Het belangrijkste verschil tussen Flatpak en Snap is dat Snap componenten van de hoofdsysteemomgeving gebruikt en isolatie toepast op basis van het filteren van systeemaanroepen, terwijl Flatpak een aparte container van het systeem creëert en werkt met grote runtime-sets, waarbij niet pakketten als afhankelijkheden worden verstrekt, maar standaard syste omgevingen (bijvoorbeeld alle bibliotheken die nodig zijn voor het draaien van GNOME- of KDE-applicaties).

Naast de standaard runtime-omgeving, die via een speciale repository wordt geïnstalleerd, worden aanvullende afhankelijkheden geleverd die vereist zijn voor de werking van de applicatie. Samen vormen de runtime en de bundle de inhoud van de container, waarbij de runtime afzonderlijk wordt geïnstalleerd en aan meerdere containers kan worden gekoppeld, waardoor duplicatie van systeemfiles die gemeenschappelijk zijn voor de containers kan worden vermeden. In één systeem kunnen verschillende runtimes (GNOME, KDE) of meerdere versies van één runtime (GNOME 3.40, GNOME 3.42) zijn geïnstalleerd. De container met de applicatie als afhankelijkheid maakt alleen binding aan een specifieke runtime, zonder rekening te houden met de aparte pakketten waaruit de runtime bestaat. Alle ontbrekende elementen worden direct samen met de applicatie verpakt. Bij het vormen van de container wordt de inhoud van de runtime gemonteerd als de partitie /usr, terwijl de bundle wordt gemonteerd in de directory /app.

De inhoud van de runtime en de applicatiecontainers wordt gevormd met behulp van de technologie OSTree, waarbij het beeld atomair wordt bijgewerkt vanuit een Git-achtige opslagplaats, die het mogelijk maakt om versiebeheermethoden toe te passen op de componenten van de distributie (bijvoorbeeld kan de systeemstatus snel worden teruggedraaid naar een eerdere staat). RPM-pakketten worden omgezet naar de OSTree-repository met behulp van een speciale laag genaamd rpm-ostree. Op zichzelf staat de afzonderlijke installatie en update van pakketten binnen de werkende omgeving niet toe; het systeem wordt niet op het niveau van afzonderlijke componenten bijgewerkt, maar geheel, door atomair zijn toestand te veranderen. Er worden middelen geboden voor incrementele toepassing van updates, zodat volledige vervanging van het beeld bij elke update niet nodig is.

De gecreëerde geïsoleerde omgeving is volledig onafhankelijk van de gebruikte distributie en heeft bij juiste instellingen geen toegang tot de bestanden en processen van de gebruiker of het primaire systeem, en kan niet rechtstreeks communiceren met de hardware, met uitzondering van uitvoer via DRI en verzoeken aan de netwerksubsystemen. Grafische uitvoer en invoer zijn gerealiseerd via het Wayland-protocol of door middel van X11-socketdoorsturing. Interactie met de externe omgeving is gebaseerd op het DBus-berichtenuitwisselingssysteem en een speciale API genaamd Portals.

Voor isolatie wordt de Bubblewrap-laag gebruikt, samen met de traditionele Linux-technologieën voor containervirtualisatie, gebaseerd op het gebruik van cgroups, namespaces, Seccomp en SELinux. Voor geluidsuitvoer wordt PulseAudio toegepast. Daarbij kan de isolatie worden uitgeschakeld, wat door ontwikkelaars van veel populaire pakketten wordt benut om volledige toegang tot het bestandssysteem en alle apparaten in het systeem te krijgen. Bijvoorbeeld, pakketten zoals GIMP, VSCodium, PyCharm, Octave, Inkscape, Audacity en VLC worden geleverd in een beperkende isolatiemodus die volledige toegang tot de home directory biedt. In het geval van compromittering van pakketten met toegang tot de home directory, is het voor een aanvaller die zijn code wil uitvoeren voldoende om het bestand ~/.bashrc te wijzigen, ondanks het feit dat het pakket in de beschrijving het label 'sandboxed' heeft. Een aparte kwestie is het toezicht op wijzigingen in de pakketten en het vertrouwen op de pakketbouwers, die vaak niet verbonden zijn met het belangrijkste project of de distributies.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster