Definir antivirus_t enquanto permissive funcionou. Isso faz com que o SeLinux não imponha suas políticas para todos os antivírus.
sudo semanage permissive -a antivirus_t
No meu servidor nginx, o contexto dos arquivos enviados é definido como:
-rw-rw-r--. nginx nginx system_u:object_r:httpd_sys_rw_content_t:s0 eicar.sh.pdf
Logo após o upload, o clamscan roda para verificar o arquivo usando php exec () como um usuário nginx.
/usr/bin/clamscan --quiet --remove /opt/myserver/files/eicar.sh.pdf
E isso gera uma negação de acesso de gravação do SeLinux, quando o clamscan tenta excluir esse arquivo (é um arquivo de teste EICAR) .
Os registros de auditoria sugerem a criação de uma política que não é a favor:
# ausearch -c 'clamscan' --raw | audit2allow -M my-clamscan
# semodule -i my-clamscan.pp
Estes já estão definidos:
sudo setsebool -P antivirus_can_scan_system 1
sudo setsebool -P antivirus_use_jit 1
P: Existe uma maneira de corrigir isso via contexto de arquivo, mas não quer perder o contexto atual httpd_sys_rw_content_t para os arquivos.