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_t
nesse 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:/downloads
com 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_samba
sinalizador. 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.