Das zentrale Bereitstellen von Software und das Aktualisieren dieser gehören zum Standardrepertoire von Administratoren. Im Januar-Schwerpunkt ... (mehr)

Eigene Mountpoints für Pakete

Die Verwaltung der Snaps übernimmt der ständig im Hintergrund laufende Daemon "snapd", dem "snap" die passenden Befehle erteilt. Bei der Installation eines neuen Snaps kopiert der Daemon das Snap-Paket in das Unterverzeichnis "/var/snaps". Gleichzeitig mountet er das enthaltene "squashfs"-Dateisystem im Unterverzeichnis "/snap/Name/current", wobei "Name" für den Namen des Snaps steht. Die auch für Administratoren interessante "snap.yaml" finden Sie danach immer unter "/snap/Name/current/meta/snap.yaml". Des Weiteren zeigen unter "/snap/bin" symbolische Links auf die Snaps. Da zumindest unter Ubuntu "/snap/bin" in der Umgebungsvariable "$PATH" eingetragen ist, können alle Benutzer des Systems die Snap-Anwendungen einfach direkt über ihren Namen starten. Sofern das Snap eine Desktop-Datei (".desktop") und ein Icon enthält, bindet sie der Snap-Daemon zudem noch ins Startmenü ein.

Auf das Verzeichnis "/snap/»Name« /current" kann die Anwendung aus dem Snap aus Sicherheitsgründen nur lesend zugreifen. Jedes Snap besitzt deshalb vier weitere Verzeichnisse, auf die es Schreibrechte besitzt. Das erste im Bunde namens "/var/snap/»Name« /current/" untersteht der eingebauten Versionsverwaltung: Bei einem Update des Snap sichert der "snapd"-Daemon automatisch den Inhalt dieses Verzeichnisses.

Ein »snap revert« holt dann nicht nur die alte Version des Snap, sondern auch die Daten zurück. Der Ordner bietet sich folglich für Konfigurationsdateien an. Alle anderen Dateien kann das Snap unter "/var/snap/»Name« /common/" ablegen, das die Versionsverwaltung ignoriert. Für die Daten und Dokumente der einzelnen Benutzer stehen dem Snap zudem die beiden Verzeichnisse "~/snap/»Name« /cur-rent/" und "~/snap/»Name« /common/" zur Verfügung.

Sandbox bringt mehr Sicherheit

Jede gestartete Anwendung läuft in einer Sandbox, die gleich mehrere Sicherheitstechniken einsetzt. So blockieren Seccomp-Filter den Zugriff auf Systemfunktionen des Linux-Kernels. AppArmor wiederum verhindert den Zugriff auf Verzeichnisse. Für die Abschottung gegenüber anderen laufenden Prozessen sorgen Kernel-Namespaces und Cgroups. Die Ubuntu-Kernel bieten zudem noch weitere spezielle Patches, die den Kernel weiter härten sollen.

Bild 3: Abgesehen von den Bibliotheken und Programmen im OS core bringen die Anwendungen in den Snaps ihre eigenen Bibliotheken und Frameworks mit.
Bild 4: Über Interfaces können Snaps aufeinander zugreifen.

Als Grundlage für jede Sandbox dient ein spezielles Snap-Paket mit einem minimalen Linux-System. Dieses sogenannte OS-Snap enthält unter anderem die Glibc- und OpenSSL-Bibliotheken sowie Python und Systemd, die (fast) jedes Snap benötigt. Über das Dateisystem des OS-Snap legt das Snap-Paketsystem dann das Dateisystem aus dem normalen Snap (Bild 3). Sobald Sie das erste Mal ein Snap aus dem Ubunut Store herunterladen, wandert auch automatisch einmalig das OS-Snap nach "/snap".

Ähnliche Artikel

comments powered by Disqus

Artikel der Woche

Eigene Registry für Docker-Images

Wer selber Docker-Images herstellt, braucht auch eine eigene Registry. Diese gibt es ebenfalls als Docker-Image, aber nur mit eingeschränkter Funktionalität. Mit einem Auth-Server wird daraus ein brauchbares Repository für Images. (mehr)
Einmal pro Woche aktuelle News, kostenlose Artikel und nützliche ADMIN-Tipps.
Ich habe die Datenschutzerklärung gelesen und bin einverstanden.

Konfigurationsmanagement

Ich konfiguriere meine Server

  • von Hand
  • mit eigenen Skripts
  • mit Puppet
  • mit Ansible
  • mit Saltstack
  • mit Chef
  • mit CFengine
  • mit dem Nix-System
  • mit Containern
  • mit anderer Konfigurationsmanagement-Software

Ausgabe /2023