A configuração do SELinux é fornecida por selinux-policy-targeted package, que contém a configuração de política padrão para a distribuição, incluindo a configuração do SELinux para o tomcat.
Eu poderia encontrar dois esboços de empacotamento antigos do Fedora descrevendo a configuração do SELinux no pacote RPM.
PackagingDrafts / SELinux sugere a inclusão da configuração de rotulagem de arquivo nas seções %post e %postun do arquivo de especificação por executando semanage fcontext -a e semanage fcontext -d respectivamente e executando restorecon / fixfiles depois.
É útil observar, conforme apontado por , que usando semanage em %pre ou %post seções de especificação adicionará a pilha python completa junto com policycoreutils-python como dependência de tempo de instalação. Usar restorecon adicionará policycoreutils , o que, por sua vez, gera sed , gawk e grep , como dependências de tempo de instalação.
Uma maneira melhor de fornecer as regras de rotulagem de arquivo requeridas seria por um módulo de política do SELinux. Os módulos de política fornecem uma interface mais clara para gerenciar a política modular (as regras de rotulagem não são misturadas com modificações locais feitas com semanage ).
Para seu módulo de política com regras de rotulagem de arquivo, você precisa fornecer um arquivo de rotulagem de contexto de arquivo e arquivo de imposição de tipo. O arquivo de imposição de tipo é obrigatório mesmo se você não adicionar nenhuma modificação à política. Um exemplo de arquivo de imposição de tipo fictício mymodule.te :
policy_module(mymodule, 1.0)
As regras de rotulagem de arquivos estão em mymodule.fc e seguem as mesmas:
/path/to/file -- gen_context(system_u:object_r:type_t,s0)
Com selinux-policy-devel , o pacote do módulo pode ser compilado com [nota 1] :
make -f /usr/share/selinux/devel/Makefile
Em relação aos módulos de política de empacotamento, Módulo de Política do SELinux Embalagem
também recomenda o uso das seções %post e %postun do arquivo de especificação para instalar a política usando semodule e restorecon / fixfiles . Um arquivo de especificação de exemplo também é fornecido.
[note 1] O exemplo de módulo de política pode ser gerado sem selinux-policy-devel usando checkmodule e semodule_package diretamente. Isso exigiria que os arquivos de políticas fossem gravados sem macros.