Монтирование томов Podman: когда использовать суффикс :z или :Z?

Монтирование томов Podman: когда использовать суффикс :z или :Z?

Страницы руководства Podmanпоясняет для монтирования/привязки томов:

Системы маркировки, такие как SELinux, требуют, чтобы на содержимое тома, смонтированное в контейнере, были помещены соответствующие метки. Без метки система безопасности может помешать процессам, запущенным внутри контейнера, использовать содержимое. По умолчанию Podman не изменяет метки, установленные ОС.

Чтобы изменить метку в контексте контейнера, вы можете добавить один из двух суффиксов илик монтированию тома. Эти суффиксы говорят Podman переименовать файловые объекты на общих томах.зoption сообщает Podman, что два контейнера совместно используют содержимое тома. В результате Podman помечает содержимое общей меткой содержимого. Общие метки томов позволяют всем контейнерам читать/писать содержимое.Зoption сообщает Podman о необходимости маркировать контент частной нераспространяемой меткой.

Theстраница устранения неполадокОднако он объясняет то же самое почти теми же словами.

Теперь, будучи новичком в Podman и SELinux, интересно, что мне на самом деле следует использовать, когда? Я знаю, что когда я получаю ошибки разрешений, они могут быть из-за SELinux, поэтому один из двух переключателей может это исправить. Но в чем разница между этими двумя опциями (строчная z и заглавная Z)?

Разница, о которой там говорится, заключается в следующем:

  • :zсоздает метку общего контента
  • :Zсоздает частную неразделенную метку

Это вводит много новых слов:

  • общий и необщий (что это значит?)
  • ??? vs private (опять же, не совсем понятно, что это должно мне сказать)
  • также для одного варианта указано «метка содержимого», а для другого — только «метка» — есть ли разница между этими двумя терминами или это одно и то же?

Так что же означают эти слова в данном контексте? И последний вопрос: когда мне следует использовать что?

решение1

«Shared» означает, что несколько контейнеров могут совместно использовать том; «unshared» говорит, что они не могут. Немного подробнее, :zпомечает том внутри каждого контейнера соответствующей меткой ( container_file_t), и любой заданный том может быть смонтирован внутри нескольких контейнеров параллельно, и все запущенные контейнеры с монтированным томом будут иметь к нему доступ. Любое изменение, внесенное хостом или любым запущенным контейнером, будет видно всем запущенным контейнерам.

«Частный» означает, что, кроме того, метка, используемая внутри контейнера, будет частной для этого контейнера. На уровне файловой системы нет дополнительных слоев, поэтому это фактически означает, что содержимое помечено как частное даже с точки зрения хоста. Контейнеры с одинаковым монтированием не могут делиться своим доступом к нему — по крайней мере, с Podman, последний контейнер побеждает и является единственным контейнером с доступом к тому. Противоположностью «частному» здесь, на мой взгляд, будет «общий», что объясняет, почему в документации нет противоположного термина («общая общая метка»).

Я не уверен, что есть какое-либо значение в «метке содержимого» и «метке», если только это не намек на тот факт, что любой контент, созданный в таких контейнерах, будет помечен соответствующим образом, в том числе и на хосте, поэтому вы увидите файлы с меткой container_file_t.

Видетьэтот пост более подробно демонстрирует разницу на Podman.Docker имеет то же самое отличие.

решение2

«Мне не важна глубокая безопасность, просто заставьте ее работать»: строчные буквыz

Продуктивная среда: рассмотрите капитал Z, но помните, что только последний контейнер с прикрепленным объемом сможет получить к нему доступ.

Кстати: это список, разделенный запятыми, поэтому если вы хотите объединить его, например, с , roон станет :ro,z.

Связанный контент