Wie funktionieren Flatpak Portals?

Um das gleich vorwegzunehmen: Flatpak Portals ist nicht ganz die richtige Bezeichnung und wurde nur wegen der etwas griffigeren Überschrift gewählt. Richtigerweise muss es XDG Desktop Portals heißen. Und nun, da wir das aus dem Weg haben, erkläre ich mal für die, die es noch nicht kennen, was Portals sind und wozu sie im Zusammenhang mit Flatpak dienen.

Portale für gezielte Berechtigungen

Portals stellen eine Reihe von D-Bus-Schnittstellen bereit, die über APIs gezielt bestimmte Rechte wie unter anderem Zugriff auf Dateien oder Geräte wie Drucker, Soundkarte etc. definieren. Sie sind ein wichtiger Baustein bei Flatpak, denn sie regeln darüber die dynamischen Berechtigungen. Das ist ein Mechanismus, über den Anwendungen innerhalb einer Sandbox mit der Host-Umgebung dynamisch interagieren können, ohne dass zusätzliche Sandbox-Berechtigungen erforderlich sind. Beispiele für Funktionen, auf die über Portals zugegriffen werden kann sind das Öffnen von Dateien über einen Dateiauswahldialog, das Drucken oder das Erstellen von Screenshots.

Desktop-spezifische Portals

So kann etwa mit dem FileChooser-Portal Zugriff auch auf einzelne Dateien im Dateisystem gewährt werden. In letzter Zeit wurden Desktop- und Toolkit-spezifische Portals erstellt, wie etwa das GTK-Backend xdg-desktop-portal-gtk, das KDE-Backend xdg-desktop-portal-kde oder das Wayland-spezifische xdg-desktop-portal-wlr (wlroots). Generell erlauben Portals fein gegliederte Berechtigungen, die nur das eben Nötige erlauben. Einen Überblick über verfügbare Portals, deren API und Handhabung gewährt die Portal Documentation.

Auch in Flatseal

Portals haben kürzlich auch Einzug in das Tool Flatseal gehalten, das ich für die kommende Ausgabe des LinuxUser ausführlich beschrieben habe. Dadurch werden die in Flatseal erlaubten oder verbotenen Aktionen nicht mehr durch Portals überschrieben.

Kommentare

6 Antworten zu „Wie funktionieren Flatpak Portals?“

  1. Avatar von Sven
    Sven

    also da hab ich jetzt echt gar nix verstanden. Naja, bin halt noch Anfänger.

    1. Avatar von Graf Zahl
      Graf Zahl

      🙂 Geht mir genauso. Deshalb sind mir AppImages im Moment lieber, weil übersichtlicher … zumindest in der Form: Hier die Datei, die wird ausgeführt. Ansonsten Fragezeichen 🙂

    2. Avatar von tuxnix
      tuxnix

      Das hat mit Anfänger doch gar nichts zu tun. Mir geht das genauso.
      Das sind alles recht neue Dinge mit denen ich mich noch nie zuvor befasst habe.
      Und wahrscheinlich werde ich mir da auch noch reichlich Zeit lassen es zu verstehen, weil ich diese Sachen aktuell gar nicht brauche. Aber es ist doch schon mal gut den Begriff XDG Desktop Portals gehört zu haben und hier nachschlagen zu können.

      Um das wenige was ich davon verstanden habe, für dich mal herunter zu brechen:
      Im altbewährten Linux wird alles mit unser und group Rechten gemanagt.
      Jetzt kommen halt seit einiger Zeit immer mehr flatpak Anwendungen dazu.
      Die laufen jeweils in einer sogenannten Sandbox und sollten zunächst einmal gar nichts dürfen.
      Und die XDG Desktop Portals sind dann dafür da, einzeln und für jede einzelne Anwendung genau festlegen zu können ob sie zum Beispiel Dateizugriff haben oder den Drucker nutzen dürfen.

      Meine subjektive Kritik an dem Ganzen ist, dass wohl in der Praxis die Sicherheit leiden wird, weil die Anwendungen selbst nicht sicherer werden, nur weil man sie in eine Sandbox steckt und der normale Nutzer das Ganze am End so nutzen wird, dass er alles erlaubt, wie er das bei Android wo das ähnlich geregelt ist, ja auch schon tut.

      Es ist dann so ähnlich wie auf Internetseiten, wo man ständig auf den Button ‚Einverstanden‘ klickt ohne sich jemals die AGB oder die Cookie-Auswahl durchgelesen zu haben, weil es einfach nur nervt.

      1. Avatar von kermet
        kermet

        Das wird bei Open Source besser funktionieren, weil man hier Einfluss auf den Quellcode der Anwendung hat, so dass die auch dann noch funktionieren wird, wenn sie keinen Zugriff auf eine Funktion erhält, die sie nicht dringend benötigt.

    3. Avatar von kermet
      kermet

      Es geht einfach darum Prozesse von einander abzuschotten und zu kontrollieren, auf welche Funktionen eines Geräts und auf welchen Ordner so ein Prozess zugreifen darf.

      Im Grunde eine sehr gute Entwicklung.

      Vor allem da Flatpaks von Open Source Software oft nicht von den Originalautoren zusammengeschnürt werden, leider erkennend die die Wichtigkeit von Flatpak nicht, und man da blind irgendeinem dritten Vertrauen müsste der das zu einem Flatpak zusammengeschnürt hat.
      Da will man die Möglichkeiten, die so eine Anwendung erhält, ziemlich stark auf das allernötigste eingrenzen.

      Ja, man könnte auch selber direkt aus dem Quellcode compilieren, aber es geht hier ja um die Einfachheit für die Benutzer, bei gleichzeitig möglichst guter Aufrechterhaltung der Sicherheit oder Begrenzung des entstehbaren Schadens.

    4. Avatar von Stefan

      Uff, dann bin ich ja nicht allein!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert