Montajes de volumen de Podman: ¿Cuándo usar el sufijo :z o :Z?

Montajes de volumen de Podman: ¿Cuándo usar el sufijo :z o :Z?

Las páginas de manual de Podmanexplica para montajes/enlaces de volumen:

Los sistemas de etiquetado como SELinux requieren que se coloquen etiquetas adecuadas en el contenido del volumen montado en un contenedor. Sin una etiqueta, el sistema de seguridad podría impedir que los procesos que se ejecutan dentro del contenedor utilicen el contenido. De forma predeterminada, Podman no cambia las etiquetas establecidas por el sistema operativo.

Para cambiar una etiqueta en el contexto del contenedor, puede agregar cualquiera de los dos sufijos :zo:Zal soporte de volumen. Estos sufijos le indican a Podman que vuelva a etiquetar objetos de archivos en los volúmenes compartidos. ElzLa opción le dice a Podman que dos contenedores comparten el contenido del volumen. Como resultado, Podman etiqueta el contenido con una etiqueta de contenido compartido. Las etiquetas de volumen compartido permiten que todos los contenedores lean/escriban contenido. ElzLa opción le dice a Podman que etiquete el contenido con una etiqueta privada no compartida.

Elpágina de solución de problemasSin embargo, explica lo mismo con casi las mismas palabras.

Ahora, siendo bastante nuevo en Podman y SELinux, me pregunto: ¿qué debería usar realmente y cuándo? Sé que cuando recibo errores de permisos podrían deberse a SELinux, por lo que uno de los dos conmutadores puede solucionarlo. Pero, ¿cuáles son las diferencias entre estas dos opciones (z minúscula y Z mayúscula)?

La diferencia que dice es:

  • :zcrea una etiqueta de contenido compartido
  • :Zcrea una etiqueta privada no compartida

Esto introduce muchas palabras nuevas:

  • compartido y no compartido (¿qué significa eso?)
  • ??? vs privado (nuevamente, no está claro qué debería decirme esto)
  • también dice "etiqueta de contenido" para una opción, mientras que la otra solo dice "etiqueta". ¿Hay alguna diferencia entre estos dos términos o es lo mismo?

Entonces, ¿qué significan estas palabras en este contexto? Y la pregunta final: ¿Cuándo debo usar qué?

Respuesta1

"Compartido" significa que varios contenedores pueden compartir el volumen; “no compartido” dice que no pueden. Con un poco más de detalle, :zetiquete el volumen dentro de cada contenedor con la etiqueta adecuada ( container_file_t), y cualquier volumen determinado se puede montar dentro de varios contenedores en paralelo, y todos los contenedores en ejecución con el montaje de volumen tendrán acceso a él. Cualquier cambio realizado por el host, o cualquier contenedor en ejecución, será visible para todos los contenedores en ejecución.

“Privada” significa que, además, la etiqueta utilizada dentro del contenedor será privada para ese contenedor. No hay capas adicionales a nivel del sistema de archivos, por lo que esto significa efectivamente que el contenido está etiquetado de forma privada incluso desde la perspectiva del host. Los contenedores con el mismo montaje no pueden compartir su acceso a él; al menos con Podman, el último contenedor gana y es el único contenedor con acceso al volumen. En mi opinión, lo opuesto a "privado" aquí sería "compartido", lo que explicaría por qué no hay ningún término opuesto en la documentación ("etiqueta compartida compartida").

No estoy seguro de que haya algún significado en "etiqueta de contenido" frente a "etiqueta", a menos que sea una alusión al hecho de que cualquier contenido creado en dichos contenedores se etiquetará en consecuencia, incluso en el host, por lo que verá archivos con la container_file_tetiqueta.

Veresta publicación demuestra la diferencia con más detalle en Podman.Docker tiene la misma distinción..

Respuesta2

"No me importa la seguridad en profundidad, sólo haz que funcione": minúsculasz

Entorno productivo: Considere el capital Zpero tenga en cuenta que solo el último contenedor con ese volumen adjunto podrá acceder a él.

Por cierto: esta es una lista separada por comas, por lo que si desea combinarla, por ejemplo, rose convierte en :ro,z.

información relacionada