Bewährte Methode zum Ausführen von Container-Images als ein anderer Benutzer

Bewährte Methode zum Ausführen von Container-Images als ein anderer Benutzer

Ich verwende Kubernetes und möchte einen Container als Nicht-Root-Benutzer ausführen.

Wenn ich mein eigenes Docker-File schreibe, kann ich useraddes chmod 777mit Docker ausführen --user <username>.

In manchen Fällen ist die Liste der zu bearbeitenden Dateien jedoch chmodmöglicherweise lang und unbekannt, sodass es sich um einen langwierigen Prozess handelt. Zudem kann sich die Liste mit der Zeit ändern und Fehler verursachen, die erst zur Laufzeit erkannt werden.

Gibt es eine bewährte Methode? Wie würden Sie mit Ordnern wie /var/logund umgehen /var/run? Eine Möglichkeit besteht darin, touch/mkdir zu verwenden setfacl.

Am einfachsten ist es, einfach zu chmod 777 -R /var/log.

Aber würde das dem Container 777auch Zugriff auf den Host geben? Wie wird es zugeordnet, wenn der Container einen Satz von Berechtigungen hat, der Host aber einen anderen?

Antwort1

Die Verwendung chmod 777ist grundsätzlich nie die richtige Lösung. Finden Sie heraus, wie Sie Ihre Berechtigungen richtig festlegen. Berechtigungen sollten fast immer so gering wie möglich sein, um Ihr Ziel zu erreichen.

Wie Sie das tun, hängt stark vom Kontext des jeweiligen Bildes und der von Ihnen ausgeführten Software ab.

Aber würde das dem Container 777 auch Zugriff auf den Host geben?

Hängt davon ab, ob der Pfad, für den Sie die Berechtigungen ändern, ein Bind-Mount ist oder sein wird.

Antwort2

Ich fand dies für meine eigene Frage relevant:

Das Overlay-Dateisystem hängt ein unteres Verzeichnis ein und hängt dann ein oberes Verzeichnis an den zusammengeführten Einhängepunkt an. Wenn ein Prozess eine neue Datei in das zusammengeführte Verzeichnis schreibt, wird die neue Datei in das obere Verzeichnis geschrieben. Wenn ein Prozess eine vorhandene Datei im unteren Verzeichnis ändert, kopiert der Kernel die Datei vom unteren Verzeichnis in das obere Verzeichnis und ermöglicht dem Prozess, die Datei im oberen Verzeichnis zu ändern.

Daher chownsollte ein Overlay-Verzeichnis (oberes Verzeichnis) keine Auswirkungen auf das Host-Verzeichnis (unteres Verzeichnis) haben.

Ich schätze aber, chmod 777dass anderen Benutzern der Zugriff auf das Overlay-Dateisystem auf dem Host ermöglicht werden könnte.

verwandte Informationen