80 Rootless Mode

Der Rootless Mode ist eine der bedeutendsten Entwicklungen im Container-Ökosystem der letzten Jahre. Er stellt das traditionelle Sicherheitsmodell auf den Kopf, indem er Container nicht mit privilegierten Rechten startet, sondern bewusst innerhalb der Einschränkungen eines normalen Benutzerkontos ausführt. Rootless Container sind damit nicht einfach „Container ohne Root“, sondern ein komplettes Sicherheitskonzept: konsequente Isolation, minimale Angriffsfläche, keine Abhängigkeit von privilegierten Daemons und ein Prozessmodell, das sich exakt am Kernel orientiert. Podman hat dieses Modell früh implementiert und präziser als andere Engines operationalisiert.

80.1 Grundprinzip: Root als Illusion

In einem rootlosen Container existiert „root“ nur als UID 0 im User Namespace. Das bedeutet:

Damit wird eine der größten Sicherheitslücken des klassischen Docker-Modells geschlossen: Dort entspricht root im Container meist root auf dem Host – ein kritisches Risiko.

Ein einfaches Modell zeigt den Unterschied:

Die Root-Identität im Container ist eine Abbildung, keine Privilegieneskalation.

80.2 User Namespaces: das Fundament des Rootless Mode

User Namespaces ermöglichen die Neuzuordnung von Benutzer- und Gruppen-IDs. Podman reserviert dafür zwei Dateien:

Beispiel:

alice:100000:65536

Alice erhält damit einen Bereich von 65.536 benutzbaren UIDs im Container.

Diese Mapping-Bereiche werden zu Container-internen Root- und Systemkonten. Isolation entsteht, weil:

Kurz: Der Rootless Mode nimmt Root den Schrecken, da er aus Root eine harmlose User-ID macht.

80.3 Keine Daemons: Sicherheit durch Struktur

Ein wesentlicher Unterschied zwischen Podman und Docker ist das Fehlen eines privilegierten Daemons. Podman nutzt den Kernel direkt:

Jeder Containerstart ist ein normaler Prozess, der dem Benutzer gehört.

Das reduziert die Angriffsfläche dramatisch. Ein Angreifer müsste:

  1. den Benutzer kompromittieren
  2. dessen User Namespace brechen
  3. dessen User-ID im Host-System übernehmen

Das ist wesentlich schwieriger, als einen privilegierten Daemon zu kapern.

80.4 Netzwerk im Rootless Mode: Slirp4netns

Container-Netzwerkbetrieb ist klassisch ein privilegierter Vorgang (Netzwerkinterfaces anlegen, Routen setzen, NAT konfigurieren). Im Rootless Mode geht das nicht direkt. Stattdessen nutzt Podman:

Diese Implementierungen erlauben Netzwerkbetrieb ohne Root-Rechte, allerdings:

Rootless Networking ist funktional, aber bewusst sicherheitsbetont und eingeschränkt.

80.5 Dateisystem und Mounting

Mounting ist ein privilegierter Vorgang. Im Rootless Mode gelten daher:

Podman speichert rootlose Container standardmäßig unter:

~/.local/share/containers

und nicht unter /var/lib/containers.

Praktische Konsequenz: Rootless Mode eignet sich besonders für Anwendungsstacks, weniger für Infrastrukturrollen wie Storage, Monitoring-Agenten oder Low-Level-Networking.

80.6 Cgroups: Kontrolle mit Grenzen

Rootless Container erhalten einen eigenen cgroup-Baum im User Slice:

/user.slice/user-1000.slice/user@1000.service

Dies erlaubt:

Aber:

Für die meisten Anwendungscontainer ist das ausreichend.

80.7 Persistenz: Rootless systemd + Linger

Rootless Container können als systemd-User-Services betrieben werden:

systemctl --user enable myapp.service

Damit sie auch ohne Login laufen:

loginctl enable-linger alice

Rootless Container werden so zu strukturierten, persistenten Diensten – ohne Root und ohne globale Effekte.

80.8 Sicherheitsvorteile in Multi-Tenant-Umgebungen

Der Rootless Mode ist nicht nur für Entwickler sinnvoll, sondern besonders für Shared Hosts:

In diesen Szenarien verhindert Rootless Mode, dass Container anderer Benutzer:

Ein Container ist damit ein „prozessgegossenes Benutzerkonto“.

80.9 „Rootless ist sicherer“ – aber nicht immer geeigneter

rootless ist sicherer, aber nicht universell passender. Einschränkungen:

Rootless Mode ist ideal für:

Nicht ideal für:

80.10 Architekturperspektive: Rootless als Schicht unter Kubernetes

Kubernetes kann rootless Container nicht direkt orchestrieren, aber Entwickler nutzen Podman + Rootless häufig als:

Auf Infrastructure Nodes benötigt Kubernetes meist rootful Engines (CRI-O, containerd), aber für Edge- und Client-Szenarien ist Rootless Mode sehr attraktiv.

Ein Architekturmodell:

Der Rootless Mode ist damit integraler Teil moderner Sicherheitsarchitekturen.


Der Rootless Mode bringt Sicherheit nicht durch Mauern, sondern durch Abwesenheit von Privilegien. Er verschiebt Containerbetrieb in die Sphäre der normalen Benutzer, ohne Funktionalität zu verlieren – und setzt damit einen neuen Standard für sichere, hostnahe Prozessisolation.