SELinux is preventing access to files with the label, file_t.

O seu servidor Red Hat / CentOS não tinha SELinux habilitado, você resolve habilitar para ter maior segurança nessa máquina e repara que muitos serviços não mais executam e geram erros dizendo que não conseguem encontrar bibliotecas para seu funcionamento.

Isso acontece porque o SELinux não reconhece as marcações não existentes e não libera o acesso do serviço às suas bibliotecas.

Verificando o log do SELinux, encontra seguidas mensagens como essa:

Summary:

SELinux is preventing access to files with the label, file_t.

Detailed Description:

SELinux permission checks on files labeled file_t are being denied. file_t is
the context the SELinux kernel gives to files that do not have a label. This
indicates a serious labeling problem. No files on an SELinux box should ever be
labeled file_t. If you have just added a new disk drive to the system you can
relabel it using the restorecon command. Otherwise you should relabel the entire
files system.

Allowing Access:

You can execute the following command as root to relabel your computer system:
"touch /.autorelabel; reboot"

Para resolver

Teóricamente quando se ativa o SELinux pela primeira vez quando o servidor está rodando ele vai solicitar um reboot pra habilitar o SELinux e nesse reboot ele vai marcar todos os arquivos do sistema para que tenham as flags das políticas. Esse cenário também ocorre quando se adiciona um novo disco ou partição ao SO.

Essa marcação inicial nem sempre acontece, as vezes faltam alguns arquivos com a marcação e ao tentar executá-los esse erro no /var/log/audit/audit.log aparece.

Fazer como sugere a solução do audit que é executando touch /.autorelabel; reboot pode resolver e também não pode.

Para resolver em definitivo e forçar que todos os arquivos de um determinado diretório sejam marcados o comando abaixo vai resolver (as políticas padrões para os arquivos serão restauradas) e os arquivos serão marcados corretamente, permitindo assim ao SELinux saber como lidar com o serviço.

restorecon -R -v /diretório
Share this post

3 comments

Join the conversation

Leave a Reply Cancel