Estou configurando um servidor do CentOS 7 no qual o diretório /home
deve estar localizado em outra partição e depois montado com o bind-mount. Então: /data/homes
deve ser montado por bind em /home
.
O problema é garantir que os contextos do SELinux sejam aplicados corretamente. De fato, os seguintes comandos têm resultados conflitantes:
# Applies the rules for /home to all the files
restorecon -R -v /home
# Applies the generic rules (standard files) to all the files
restorecon -R -v /data/homes
Isso está causando problemas se o sistema precisar renomear os arquivos.
Para resolver esse problema, modifiquei o arquivo de políticas /etc/selinux/targeted/contexts/files/file_contexts.homedirs
copiando todas as regras também para /data/homes
:
$ sed -n '/^\/home/p' /etc/selinux/targeted/contexts/files/file_contexts.homedirs \
| sed 's/^\/home/\/data\/homes/' \
>> /etc/selinux/targeted/contexts/files/file_contexts.homedirs
No entanto, quando a política é reconstruída com semodule -B
, minhas alterações são perdidas.
Eu sei que a maneira recomendada de modificar esses arquivos é usar semanage fcontext
, mas no total há quase 200 regras que eu preciso adicionar, e executar semanage for each
não é uma opção.
Como posso alterar manualmente os arquivos em /etc/selinux/targeted/contexts/files/file_contexts
e garantir que as alterações sejam mantidas?