Zum Inhalt springen

Docker/Userns-remap: Unterschied zwischen den Versionen

Aus Foxwiki
 
Zeile 59: Zeile 59:


2. Nach dem Speichern der Datei den Dienst neu starten:
2. Nach dem Speichern der Datei den Dienst neu starten:
<syntaxhighlight lang="bash" highlight="1" line copy>
<syntaxhighlight lang="bash" highlight="1" copy>
sudo systemctl restart docker
sudo systemctl restart docker
</syntaxhighlight>
</syntaxhighlight>


3.&nbsp;Überprüfung
3.&nbsp;Überprüfung
<syntaxhighlight lang="bash" highlight="1" line copy>
<syntaxhighlight lang="bash" highlight="1" copy>
docker info | grep -i userns
docker info | grep -i userns
</syntaxhighlight>
</syntaxhighlight>

Aktuelle Version vom 13. November 2025, 21:00 Uhr

Docker/Userns-remap - Beschreibung

Beschreibung

Linux-Namespaces bieten Isolation für laufende Prozesse und beschränken deren Zugriff auf Systemressourcen, ohne dass der laufende Prozess diese Beschränkungen wahrnimmt.

  • Weitere Informationen zu Linux-Namespaces finden Sie unter Linux-Namespaces.

Der beste Weg, um Angriffe zur Rechteausweitung aus einem Container heraus zu verhindern, besteht darin, die Anwendungen Ihres Containers so zu konfigurieren, dass sie als nicht privilegierte Benutzer ausgeführt werden.

  • Bei Containern, deren Prozesse als Root-Benutzer innerhalb des Containers ausgeführt werden müssen, können Sie diesen Benutzer einem Benutzer mit weniger Privilegien auf dem Docker-Host zuordnen.
  • Dem zugeordneten Benutzer wird ein Bereich von UIDs zugewiesen, die innerhalb des Namespace wie normale UIDs von 0 bis 65536 funktionieren, aber keine Privilegien auf dem Host-Rechner selbst haben.

Vorbereitung

Nach dem Aktivieren von userns-remap erstellt Docker einen Unterordner wie folgt:

/var/lib/docker/<uid>.<gid>/
  • Neue Entitäten (Bilder, Container, Volumes, Overlay-Ebenen) werden nun dort gespeichert.
  • Kataloge mit alten Entitäten werden nicht mehr verwendet.
  • docker ps, docker images, docker volume ls funktionieren nur mit dem aktuellen namepace
  • Der Eigentümer der Dateien in overlay2 und volumes ist nun nicht mehr root, sondern der remapped-Benutzer

Für neue Installationen

Images und Container lassen sich einfacher und schneller neu laden als migrieren.

Bei aktiviertem userns-remap
  • --pid=host und --network=host können nicht verwendet werden.
  • Einige externe Volume-/Speichertreiber verstehen möglicherweise remap nicht und funktionieren nicht mehr.
  • --privileged ohne --userns=host funktioniert nicht mehr wie zuvor, einige Funktionen sind eingeschränkt.
  • Es ist besser, userns-remap bei einer sauberen Docker-Installation zu aktivieren: Alte Image-Layer und Container werden ausgeblendet, da Docker einen separaten Ordner für den neuen Namespace in /var/lib/docker/ erstellt.

Migration zu neuen Namespaces

Bereinigung

Da alle erforderlichen Daten in den Ordner /var/lib/docker/<uid.guid> verschoben werden, müssen nach der Migration alle nicht mehr benötigten Dateien gelöscht werden.

systemctl stop docker
cd /var/lib/docker
rm -rf containers image network plugins swarm tmp trust volumes

Installation

1. Um den Modus userns-remap zu aktivieren, müssen Sie die Datei /etc/docker/daemon.js mit folgendem Inhalt erstellen:

{
  "userns-remap": "default"
}

Oder Sie können den Benutzer manuell eingeben:

{
  "userns-remap": "testuser"
}

Sie können den Namen, die UID oder user:group angeben

2. Nach dem Speichern der Datei den Dienst neu starten:

sudo systemctl restart docker

3. Überprüfung

docker info | grep -i userns
Userns mode: private


Anhang

Siehe auch



Dokumentation

Links

Projekt

Weblinks