Podman-Volume-Mounts: Wann soll das Suffix :z oder :Z verwendet werden?

Podman-Volume-Mounts: Wann soll das Suffix :z oder :Z verwendet werden?

Die Podman-Manpageserklärt für Volume-Mounts/Binds:

Beschriftungssysteme wie SELinux erfordern, dass der in einem Container bereitgestellte Datenträgerinhalt mit den richtigen Beschriftungen versehen wird. Ohne eine Beschriftung kann das Sicherheitssystem verhindern, dass die im Container ausgeführten Prozesse den Inhalt verwenden. Standardmäßig ändert Podman die vom Betriebssystem festgelegten Beschriftungen nicht.

Um eine Bezeichnung im Containerkontext zu ändern, können Sie eines von zwei Suffixen hinzufügen :zoder:Zzur Volume-Einbindung. Diese Suffixe weisen Podman an, Dateiobjekte auf den freigegebenen Volumes neu zu kennzeichnen. Diezteilt Podman mit, dass zwei Container den Volume-Inhalt gemeinsam nutzen. Als Ergebnis kennzeichnet Podman den Inhalt mit einem gemeinsamen Inhaltslabel. Gemeinsame Volume-Labels ermöglichen allen Containern das Lesen/Schreiben von Inhalten. DieZweist Podman an, den Inhalt mit einem privaten, nicht freigegebenen Label zu kennzeichnen.

DerSeite zur Fehlerbehebungerklärt jedoch dasselbe mit fast denselben Worten.

Da ich mit Podman und SELinux noch ziemlich unerfahren bin, frage ich mich, was ich wann eigentlich verwenden sollte. Ich weiß, dass Berechtigungsfehler, die ich bekomme, an SELinux liegen könnten, sodass einer der beiden Schalter das Problem möglicherweise beheben kann. Aber was sind die Unterschiede zwischen diesen beiden Optionen (z in Kleinbuchstaben und Z in Großbuchstaben)?

Der Unterschied ist:

  • :zerstellt ein Label für freigegebene Inhalte
  • :Zerstellt ein privates, nicht freigegebenes Label

Dadurch werden viele neue Wörter eingeführt:

  • geteilt und nicht geteilt (was bedeutet das?)
  • ??? vs privat (auch hier ist mir nicht klar, was mir das sagen soll)
  • außerdem steht bei einer Option „Inhaltsbezeichnung“, während bei der anderen nur „Bezeichnung“ steht – gibt es zwischen diesen beiden Begriffen einen Unterschied oder ist es dasselbe?

Was also bedeuten diese Wörter in diesem Zusammenhang? Und die letzte Frage: Wann sollte ich was verwenden?

Antwort1

„Shared“ bedeutet, dass mehrere Container das Volume gemeinsam nutzen können; „unshared“ bedeutet, dass dies nicht möglich ist. Um etwas genauer zu werden: :zKennzeichnet das Volume in jedem Container mit dem entsprechenden Label ( container_file_t), und jedes beliebige Volume kann parallel in mehreren Containern gemountet werden, und alle laufenden Container mit der Volume-Mount haben Zugriff darauf. Jede vom Host oder einem laufenden Container vorgenommene Änderung ist für alle laufenden Container sichtbar.

„Privat“ bedeutet, dass zusätzlich das im Container verwendete Label für diesen Container privat ist. Auf Dateisystemebene gibt es keine zusätzliche Schichtung, was effektiv bedeutet, dass der Inhalt auch aus Sicht des Hosts privat beschriftet ist. Container mit demselben Mount können ihren Zugriff darauf nicht teilen – zumindest bei Podman gewinnt der letzte Container und ist der einzige Container mit Zugriff auf das Volume. Das Gegenteil von „privat“ wäre hier in meinen Augen „geteilt“, was erklären würde, warum es in der Dokumentation keinen gegenteiligen Begriff gibt („geteiltes geteiltes Label“).

Ich bin nicht sicher, ob die beiden Begriffe „Inhaltsbezeichnung“ und „Bezeichnung“ irgendeine Bedeutung haben, es sei denn, es handelt sich um eine Anspielung auf die Tatsache, dass alle in solchen Containern erstellten Inhalte entsprechend gekennzeichnet werden, auch im Host, sodass Sie Dateien mit der container_file_tBezeichnung sehen.

Sehendieser Beitrag zeigt den Unterschied im Detail auf Podman.Docker hat die gleiche Unterscheidung.

Antwort2

„Umfassende Sicherheit ist mir egal, ich muss nur dafür sorgen, dass es funktioniert“: Kleinbuchstabenz

Produktive Umgebung: Bedenken Sie das Kapital Z, aber seien Sie sich bewusst, dass nur der letzte Container mit dem angehängten Volumen darauf zugreifen kann.

Übrigens: Dies ist eine durch Kommas getrennte Liste. Wenn Sie sie also beispielsweise mit kombinieren möchten, rowird daraus :ro,z.

verwandte Informationen