Qual é a maneira correta de definir o contexto do SELinux em um RPM .spec?

13

Estou tentando criar um RPM voltado para RHEL4 e 5. No momento, chamo chcon de %post , mas várias entradas do Google dizem "não é assim que você deve fazer isso", com uma ajuda muito limitada no < em> direito caminho. Eu também notei que fixfiles -R mypackage check diz que os arquivos estão errados quando estão certos (como esperado; o RPM DB não percebe o que eu quero).

  • Eu especificamente digo RHEL4 porque ele não tem semanage , o que parece ser uma das formas adequadas de fazê-lo. (Adicione uma nova política e, em seguida, execute restorecon em seus diretórios em %post .)

    • Eu também não preciso do meu próprio contexto, apenas httpd_cache_t em um diretório não padrão.
  • Também vi "let cpio cuidar disso" - mas tenho um novo problema em que um usuário de construção RPM não-raiz não pode executar chcon nos diretórios de compilação. Eu trapacei e tive sudo no arquivo de especificações, mas isso não pareceu importar de qualquer maneira.

por Aaron D. Marasco 09.07.2011 / 16:29

1 resposta

9

O Guia de Embalagem do Fedora tem um documento de rascunho explicando como lidar com o SELinux em pacotes, e eles usam semanage . Sem semanage , parece que apoiar o RHEL 4 será um hack, e não há como evitar isso.

De acordo com as notas de lançamento da rpm 4.9.0 , tem havido algum apoio diretamente em rpm para gerenciar as políticas do SELinux, mas historicamente foi quebrado:

  • Older versions of RPM supported a %policy directive in spec for attaching SELinux policies into the package header, but this was never really usable for anything. Any uses of the %policy directive in specs should be removed as this unused directive prevents building with RPM 4.9.0 and later, while not doing anything for older versions.
  • Starting with RPM 4.9.0, SELinux policy packaging is supported via new %sepolicy section in the spec. Such packages cannot be built, but are installable on older RPM versions too (but the included policies will not be used in any way).

Não vejo menção a contextos de arquivo e não consegui encontrar nenhuma menção ao suporte ao contexto de arquivos diretos (como %attr na seção %files ). Em qualquer caso, parece que o RHEL 6 está apenas na rpm 4.8.0, então (a menos que eu tenha perdido alguma coisa), a rota semanage é tão boa quanto poderemos fazer pelo menos até o RHEL 7.

    
por 28.07.2011 / 20:04