Flatpak-Berechtigungen grafisch ändern

Aus LinuxUser 10/2021

Flatpak-Berechtigungen grafisch ändern

© Dmytro Tolmachov / 123RF.com

Eingeschränkt

Mithilfe von Flatseal ändern Sie in einer grafischen Oberfläche, worauf ein Flatpak im Host-System Zugriff hat.

Die universellen Paketformate Flatpak, Snap und AppImage sind auf dem Vormarsch, einige Distributionen setzen bereits vornehmlich auf eines davon. In vielerlei Hinsicht hat Flatpak die besten Chancen, sich letztlich durchzusetzen: Es bringt nicht nur bei modernen Distributionen wie Fedora Silverblue, die auf dieses Format setzen, Vorteile, sondern auch bei herkömmlichen Distributionen.

So gibt es mit Flathub einen zentralen freien Marktplatz für Anwendungen im Flatpak-Format [1]. Von dort oder direkt von den Entwicklern können Sie aktuelle Versionen von Anwendungen installieren, ohne dass sich diese mit den herkömmlich eingerichteten älteren Versionen (etwa in einer LTS-Installation) in die Quere kommen. Als Beispiel sei das Videoschnittprogramm Kdenlive genannt: Selbst im brandneuen Debian 11 liegt es nur in Version 20.12.3-1 vor, während Flathub bereits das zurzeit neueste Kdenlive 21.08 bereithält.

Flatpak integriert sich in das jeweilige System, und die Anwendungen lassen sich darüber administrieren und aktualisieren [2]. Ganz anders AppImage: Dieses Format wird nicht eingebunden, sondern einfach nur gestartet, und hinterlässt standardmäßig keine Spuren im System. Auf Snap gehen wir an dieser Stelle nicht ein, da es sich um einen Sonderweg von Canonical handelt, der mehr oder weniger auf das Ubuntu-Universum beschränkt bleibt und zudem proprietäre Anteile aufweist.

Vor- und Nachteile

Ein Problem bei der Akzeptanz von Flatpak ergibt sich aus der Tatsache, dass Flatpaks aus Sicherheitsgründen in einer Sandbox laufen. Das führt dazu, dass sie in der Standardeinstellung nur sehr eingeschränkt Zugriff auf die Host-Umgebung erhalten. So kann es im Extremfall vorkommen, dass ein Flatpak mit der jeweiligen Anwendung erstellte Dateien nicht zu sichern vermag, weil der entsprechende Zugriff auf das Dateisystem fehlt.

Wir erlebten konkret den Fall, dass wir die erstellte Datei zwar sichern konnten, sie sich aber dann im Dateisystem nicht auffinden ließ – sehr ärgerlich, wenn man auf diese Weise eine Stunde Arbeit verliert. Das Flatpak der beliebten Videoschnittanwendung Kdenlive hatte beispielsweise dieses Problem. Das andere Extrem markieren Flatpaks, die unnötigerweise das gesamte Dateisystem zum Zugriff freigeben.

Die Richtlinien für Berechtigungen von Flatpaks lesen Sie bei Interesse im Kapitel “Sandbox Permissions” der Flatpak-Dokumentation [3] nach. Der eingeschränkte Zugriff auf das Netzwerk und weitere Geräte, auf das Dateisystem, auf D-Bus, Prozesse und Systemaufrufe außerhalb der Sandbox wird im letzten Bauabschnitt eines Flatpaks zwar für den jeweiligen Anwendungszweck etwas gelockert, entspricht aber selten den individuellen Anforderungen des Endanwenders.

Portals

Bei den Berechtigungen von Flatpak unterscheidet man zwischen statischen und dynamischen Berechtigungen. Als wichtiger Baustein von Flatpak fungieren die Portals, die die dynamischen Berechtigungen regeln. Darunter versteht Flatpak einen Mechanismus, über den Anwendungen innerhalb einer Sandbox mit der Host-Umgebung dynamisch interagieren, ohne dazu zusätzliche Sandbox-Berechtigungen zu benötigen. Beispiele für Funktionen, auf die man über Portals zugreifen kann, sind das Öffnen von Dateien über einen Auswahldialog, das Drucken und das Erstellen von Screenshots.

So erlaubt etwa das FileChooser-Portal den Zugriff auf einzelne Dateien im Dateisystem. In den letzten zwei Jahren wurden Desktop- und Toolkit-spezifische Portals erstellt, wie etwa das GTK-Backend xdg-desktop-portal-gtk, das KDE-Backend xdg-desktop-portal-kde und das Wayland-spezifische xdg-desktop-portal-wlr. Generell erlauben Portals fein abgestufte Berechtigungen, die nur das eben Nötige erlauben (Abbildung 1). Einen Überblick über Portals gewährt die Portal-Dokumentation [4].

Abbildung 1: Bei Portals handelt es sich um Session-Bus-APIs, die Sandbox-Anwendungen eingeschränkten Zugriff auf Ressourcen bieten. Bisher sind erst zwei Portals in Flatseal freigegeben, weitere sollen folgen.

Abbildung 1: Bei Portals handelt es sich um Session-Bus-APIs, die Sandbox-Anwendungen eingeschränkten Zugriff auf Ressourcen bieten. Bisher sind erst zwei Portals in Flatseal freigegeben, weitere sollen folgen.

Die statischen Berechtigungen lassen sich auf der Kommandozeile nach dem Schema flatpak override App-ID --Berechtigung verändern. So hat der Autor die Berechtigungen einer frühen Version des MD-Journals Pepys angepasst, nachdem er eine Datei verloren hatte. Das gelang mit dem folgenden Befehl aus Listing 1.

Listing 1

Berechtigung anpassen

# flatpak override --user dev.lukebriggs.pepys --filesystem=home

Geben Sie dabei anstatt --filesystem=home die Option --filesystem=host ein, erlauben Sie den Zugriff auf die meisten Dateien des Dateisystems. Diese Einstellung findet man bei vielen Flatpaks, obwohl das der Idee des Sandboxings zuwiderläuft. Noch weiter geht --filesystem=host-os, das auch Zugriff auf die betriebssystemspezifischen Einstellungen gewährt (Abbildung 2).

Abbildung 2: H&auml;ufig kann man in Flatpaks die generelle Einbindung des Dateisystems per <code>filesystem=host</code> sehen, was der Idee des Sandboxing zuwiderl&auml;uft. Das l&auml;sst sich mit Flatseal feiner steuern.

Abbildung 2: Häufig kann man in Flatpaks die generelle Einbindung des Dateisystems per filesystem=host sehen, was der Idee des Sandboxing zuwiderläuft. Das lässt sich mit Flatseal feiner steuern.

Aber auch das bekommen Sie in den Griff, denn mit flatpak override lassen sich Berechtigungen sowohl erteilen als auch nehmen. Das auf der Kommandozeile zu regeln, ist aber nicht jedermanns Sache, da man sich die Befehle aus der Manpage oder der Dokumentation zusammenbasteln muss [5]. Zudem sind sich die meisten Anwender dieser Umstände vermutlich nicht bewusst, bis sie es auf die harte Tour lernen, nachdem sie an die Grenzen stoßen oder gar Daten eingebüßt haben.

Bereits seit Gnome 3.32 gibt es in der Kategorie Anwendungen der Systemeinstellungen eine rudimentäre Möglichkeit, Berechtigungen zu ändern, die aber weit hinter den Möglichkeiten der Kommandozeile zurückbleibt.

Flatseal

An dieser Stelle kommt Flatseal ins Spiel, das ein Anpassen der Flatpak-Berechtigungen in einer grafischen Oberfläche ermöglicht. Die Anwendung nutzt dazu im Hintergrund die Befehle von flatpak override. Flatseal wird seit rund zwei Jahren auf Github entwickelt [6]. Die für den Einstieg unentbehrliche Dokumentation von Flatseal erreichen Sie über das Hamburger-Menü oben links in der Anwendung (Abbildung 3) oder online auf Github [7].

Abbildung 3: Manche Kategorien fallen selbsterkl&auml;rend aus, andere weniger. Die Dokumentation zu Flatseal erkl&auml;rt die einzelnen Kategorien ausf&uuml;hrlich.

Abbildung 3: Manche Kategorien fallen selbsterklärend aus, andere weniger. Die Dokumentation zu Flatseal erklärt die einzelnen Kategorien ausführlich.

Zum Test stellen Sie zunächst sicher, dass Sie das Flatpak-Framework sowie eine oder mehrere Flatpak-Anwendungen installiert haben. Die Vorgehensweise für die Installation des Frameworks wird auf Flathub für verschiedene Distributionen erklärt [8]. Flatpak-Anwendungen installieren Sie am einfachsten, indem Sie die App auf Flathub suchen und dann die beiden ganz unten auf der Flathub-Seite zur Anwendung aufgeführten Befehle ausführen. Dasselbe gilt für Flatseal selbst (Listing 2). Beim nächsten Start sollten sich die Flatpaks aus dem Hauptmenü der Desktop-Umgebung starten lassen.

Listing 2

Flatseal installieren

$ flatpak install flathub com.github.tchx84.Flatseal
$ flatpak run com.github.tchx84.Flatseal

Flatseal steht derzeit bei Version 1.7.4. Seit dem Release 1.7.0 beherrscht das Tool nicht nur die Manipulation der statischen Vorgaben der Entwickler des Pakets per flatpak override, sondern auch die durch Portals möglichen dynamischen Änderungen. Bislang wurden aber noch nicht alle Portals implementiert. Direkt beim ersten Start listet Flatseal die installierten Flatpaks mit ihren Rechten auf (Abbildung 4). Installieren Sie ein neues Flatpak, müssen Sie Flatseal neu starten, um die Liste zu aktualisieren.

Abbildung 4: Flatseal wird aktiv weiterentwickelt. Seit Version&nbsp;1.7.0 beschr&auml;nkt es sich nicht mehr auf die Basisberechtigungen, sondern erlaubt auch die Manipulation der Berechtigungen &uuml;ber Portals.

Abbildung 4: Flatseal wird aktiv weiterentwickelt. Seit Version 1.7.0 beschränkt es sich nicht mehr auf die Basisberechtigungen, sondern erlaubt auch die Manipulation der Berechtigungen über Portals.

Selbsterklärend

Flatseal ist übersichtlich, für mobile Geräte adaptiv und konvergent gestaltet und weitgehend selbsterklärend. Auf der linken Seite führt das Programm die installierten Flatpaks auf. Klicken Sie auf eines davon, erscheinen mittig die Berechtigungen in verschiedenen Kategorien. Einzelne Berechtigungen erteilen oder versagen Sie einfach über den Schieber rechts, wobei erteilte Rechte blau unterlegt sind.

In den Kategorien Share, Socket, Device, Allow und Filesystem steht unter den jeweiligen Berechtigungen in Grau der entsprechende Parameter zu flatpak override. Sollten Sie nicht genau wissen, was eine Berechtigung erlaubt, so können Sie dies anhand des Parameters in der Dokumentation oben im Hamburger-Menü oder auf Github nachlesen.

In der Kategorie Persistent übertragen Sie Pfade aus dem Home-Verzeichnis in das Dateisystem der Sandbox und vermeiden so den Zugriff auf das gesamte Home-Verzeichnis (Abbildung 5). Technisch werden dabei Pfade aus Ihrem Home nach ~/.var/app/App-ID/Pfad verknüpft. So zeigt zum Beispiel ~/.var/app/org.mozilla.Firefox/.mozilla auf das Verzeichnis ~/.mozilla/, in dem Firefox das Profil des Nutzers speichert.

Abbildung 5: Die Eintr&auml;ge der Abteilung <span class="ui-element">Persistent</span> bilden Pfade aus dem Home in der Struktur der jeweiligen Flatpak-Anwendung ab.

Abbildung 5: Die Einträge der Abteilung Persistent bilden Pfade aus dem Home in der Struktur der jeweiligen Flatpak-Anwendung ab.

Unter Environment exportieren Sie Variablen. Setzen Sie eine Umgebungsvariable in der Anwendung, um die Variable für die Anwendung verfügbar zu machen. Fügen Sie zum Beispiel MOZ_ENABLE_WAYLAND=1 für Firefox hinzu, um das Wayland-Backend zu aktivieren. Praktisch klicken Sie dazu auf das Pluszeichen, was eine leere Zeile mit einem Warnzeichen öffnet. Letzteres verschwindet erst, wenn Sie einen für dieses Feld gültigen Eintrag vornehmen. Die Einträge unter System Bus erlauben der Anwendung, sich mit Systemdiensten zu verständigen, während Session Bus die Kommunikation mit den Sitzungsdiensten freigibt.

TIPP

Wundern sie sich nicht, wenn der Schalter Zeige Details ausgegraut bleibt, falls sie keinen Gnome-Desktop verwenden: Er soll Informationen über die Apps per Gnome Software liefern.

Fazit und Ausblick

Mit etwas Einarbeitung klopfen Sie mit Flatseal jedes neu installierte Flatpak schnell auf seine Berechtigungen hin ab und modifizieren diese nach Ihren Anforderungen. Geht dabei einmal etwas schief, bietet die App die Möglichkeit, die Änderungen des betroffenen Flatpaks über den Schalter Zurücksetzen wieder auf den vorherigen Stand zu bringen (Abbildung 6). Das war beim Autor in 18 Monaten allerdings bisher nicht nötig.

Abbildung 6: &Auml;nderungen, die Fehler hervorrufen oder nicht das gew&uuml;nschte Ergebnis bringen, lassen sich &uuml;ber einen Schalter rechts oben in der Leiste einfach zur&uuml;cksetzen.

Abbildung 6: Änderungen, die Fehler hervorrufen oder nicht das gewünschte Ergebnis bringen, lassen sich über einen Schalter rechts oben in der Leiste einfach zurücksetzen.

Mehr gibt es zu Flatseal nicht zu sagen, und das ist durchaus positiv gemeint. Die Anwendung erspart dem Anwender, sich mühselig Wissen um die Berechtigungen von Flatpak-Apps und die Möglichkeiten zu deren Manipulation aneignen zu müssen. Die Anwendung erledigte in eineinhalb Jahren regelmäßiger Benutzung bisher immer, was sie sollte. Die kürzliche Integration von Portals macht Flatseal noch nützlicher. Der einzige Wermutstropfen: Es werden noch nicht alle Portals unterstützt. (cla/jlu)

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 10/2021 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben