restorecon não faz nada no CentOS 7

3

No CentOS 7.5, Linux 3.10.0-862.3.2.el7.x86_64, estou tentando entender como os contextos de arquivos funcionam. ls -Z , chcon e semanage parecem funcionar como esperado, mas restorecon parece teimosamente silencioso.

Por exemplo:

$ cd
$ mkdir context
$ ls -laZ
drwxrwxr-x  liteyear liteyear ?                                context
$ chcon -v unconfined_u:object_r:user_home_t:s0 context
$ ls -laZ
drwxrwxr-x. liteyear liteyear unconfined_u:object_r:user_home_t:s0 context
$ rmdir context

Tudo bem e semanage :

$ mkdir context
$ sudo semanage fcontext -a -t user_home_t /home/liteyear/context
$ cat /etc/selinux/targeted/contexts/files/file_contexts.local

# This file is auto-generated by libsemanage
# Do not edit directly.

/home/liteyear/context    system_u:object_r:user_home_t:s0

Tudo bem, mas a rota restorecon :

$ restorecon -v /home/liteyear/context
$ ls -laZ
drwxrwxr-x  liteyear liteyear ?                                context

não aplica o contexto do arquivo.

Eu tentei várias iterações, com contextos existentes, diferentes contextos, outras pastas e arquivos, e restorecon nunca produziu nada. Existem vários relatórios semelhantes (por exemplo, [CentOS] SELinux restorecon não funciona ) mas ninguém parece ter confirmado que há um problema.

É desta maneira que restorecon deve funcionar?

    
por Heath Raftery 18.07.2018 / 22:35

1 resposta

1

Em sistemas em execução com o SELinux ativado, novos arquivos e diretórios herdam o contexto do diretório pai ou aplicam um contexto por regras de política. O exemplo mostra que nenhum contexto do SELinux é aplicado quando o diretório é criado, visível de ls -Z output como ? na coluna de contexto de segurança.

Isso sugere que o SELinux não está habilitado em seu sistema. Quando o SELinux está habilitado, os contextos dos arquivos são aplicados automaticamente pelo sistema.

Você pode verificar o status do SELinux com o comando sestatus .

Se você deseja reativar o SELinux, você deve verificar o documentação antecipadamente. O sistema deve ser inicializado no modo permissivo primeiro para ser renomeado (rótulos ausentes a serem aplicados) e quaisquer problemas aparentes devem ser corrigidos antes de mudar para o modo de execução.

O SELinux requer frequentemente alguma configuração: você pode ter arquivos em locais não incluídos na política padrão ou seu aplicativo pode exigir mais permissões do que a política padrão permite. audit2allow e audit2why são ferramentas úteis ao investigar logs do SELinux e geralmente revelam rótulos de arquivos incorretos ou sugerem booleanos que podem resolver problemas.

O SELinux também possui domínios permissivos que pode ser usado para desabilitar o SELinux para determinados domínios (processos) enquanto deixa o resto da política em modo de imposição. No modo permissivo, os logs são gerados da mesma forma que no modo de imposição para acesso que, de outra forma, seria negado. Obviamente, a execução de um aplicativo no domínio permissivo é praticamente o mesmo que executar o aplicativo SELinux desativado.

    
por 20.07.2018 / 13:59