Todo o procedimento está muito bem documentado nos manpages de audit2allow(1)
, checkmodule(8)
e semodule(8)
.
Um exemplo de fluxo de trabalho seria ( all obtido das páginas de manual mencionadas):
- revise local.te e personalize conforme desejado
$ cat local.te
module local 1.0;
require {
class file { getattr open read };
type myapp_t;
type etc_t;
};
allow myapp_t etc_t:file { getattr open read };
- Compile o módulo
$ checkmodule -M -m -o local.mod local.te
- Crie o pacote
$ semodule_package -o local.pp -m local.mod
- Carregue o módulo no kernel
$ semodule -i local.pp
- Instale ou substitua um pacote de políticas que não seja de base.
$ semodule -i httpd.pp
- Listar módulos não básicos.
$ semodule -l
Se seus módulos tiverem versões, você pode achar interessante usar a opção semodule(8)
-u
:
-u,--upgrade=MODULE_PKG
upgrade an existing module package, or install if the module does not exist