Permitir que o Samba e o Podman façam rw no mesmo diretório

Permitir que o Samba e o Podman façam rw no mesmo diretório

Sou novo no SElinux, então não sei muito sobre como usá-lo. Quero rodar meu servidor Fedora usando um compartilhamento samba (já configurado e funcionando) e configurei um contêiner podman, montando o mesmo diretório. Mas enquanto o SElinux estiver ativado, o contêiner não poderá acessar o diretório montado. Desligar o SElinux ( setenforce 0) "resolve" isso.

Atualmente tentei usar public_content_rw_tnesse diretório, mas ainda não 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

Em ambos os casos, o contêiner podman não consegue acessar o mesmo diretório. SElinux está impedindo isso (logs setroubleshoot[1232603]: SELinux is preventing java from write access on the directory /srv/downloads:). Por exemplo usando: podman exec -it $CONTAINER ls -l /downloads(montado /srv/downloads:/downloadscom rw).

Quero rodar meu servidor com SElinux. O que preciso configurar para que ambos os processos possam usar o mesmo diretório?

Responder1

Como sou novo no SELinux, existem mais ferramentas disponíveis para ajudá-lo a descobrir isso, que acabei de encontrar na semana passada. Um ponto de partida éaqui. Principalmente o audit.log com audit2why e audit2allow. Definoforce como 0, cp /dev/null sobre audit.log, executo comandos com falha (que são bem-sucedidos no modo Permissivo, mas ainda estão registrados no log de auditoria), salve o log e analise como no link acima. Usei esse processo nos últimos dias para criar uma política personalizada para uma API flask/apache executando subprocessos python. Portanto, não é uma resposta específica, mas o processo deve levar você a uma solução, como aconteceu comigo.

Responder2

Resolvemos isso habilitando o setsebool -P virt_use_sambasinalizador. Isso parece permitir o acesso de instâncias virtualizadas (..e contêineres..) às unidades montadas.

Pergunta antiga, mas encontrei essa resposta justamente em um local da internet e seria bom divulgá-la caso resolva mais problemas.

informação relacionada