Permitir que Samba y Podman funcionen en el mismo directorio

Permitir que Samba y Podman funcionen en el mismo directorio

Soy nuevo en SElinux así que no sé mucho sobre cómo usarlo. Quiero ejecutar mi servidor Fedora usando un recurso compartido de samba (ya configurado y funcionando) y configurar un contenedor podman, montando el mismo directorio. Pero mientras SElinux está activado, el contenedor no puede acceder al directorio montado. Desactivar SElinux ( setenforce 0) "resuelve" eso.

Actualmente he intentado usarlo public_content_rw_ten ese directorio, pero todavía no funciona.

# first try
$ semanage fcontext -a -t samba_share_t "/srv/downloads(/.*)?"
$ restorecon -Rv /srv/downloads

# second try
$ semanage fcontext -m -t public_content_rw_t "/srv/downloads(/.*)?"
$ restorecon -Rv /srv/downloads

En ambos casos, el contenedor podman no puede acceder al mismo directorio. SElinux lo está impidiendo (registros setroubleshoot[1232603]: SELinux is preventing java from write access on the directory /srv/downloads:). Por ejemplo usando: podman exec -it $CONTAINER ls -l /downloads(montado /srv/downloads:/downloadscon rw).

Quiero ejecutar mi servidor con SElinux. ¿Qué necesito configurar para que ambos procesos puedan usar el mismo directorio?

Respuesta1

Como soy nuevo en SELinux, hay más herramientas disponibles para ayudarlo a resolverlo, que encontré la semana pasada. Un punto de partida esaquí. Principalmente audit.log con audit2why y audit2allow. Establezco fuerza en 0, cp /dev/null sobre audit.log, ejecuto comandos fallidos (que tienen éxito en el modo permisivo pero aún están registrados en el registro de auditoría), luego guardo el registro y lo analizo como en el enlace anterior. Utilicé este proceso durante los últimos días para crear una política personalizada para una API de flask/apache que ejecuta subprocesos de Python. Así que no es una respuesta específica, pero el proceso debería llevarte a una solución como me ayudó a mí.

Respuesta2

Resolvimos esto habilitando la setsebool -P virt_use_sambabandera. Esto parece permitir el acceso de instancias virtualizadas (... y contenedores...) a las unidades montadas.

Antigua pregunta, pero encontré esta respuesta precisamente en un lugar de Internet y sería bueno difundirla en caso de que resuelva más problemas.

información relacionada