Acredito que se você definir /etc/selinux/config
para disabled
reboot. Em seguida, defina-o como enforcing
e reinicialize; ele será rotulado novamente se você tiver problemas para conseguir que ele seja reclassificado de outra forma. É estranho que restorecon não funcionou embora.
Se você quiser redefinir as coisas da maneira mais difícil, o diretório / home deve ser:
system_u:object_r:home_root_t
e cada diretório inicial do usuário (e os arquivos dentro dele) devem ser:
unconfined_u:object_r:user_home_dir_t:s0
Você pode defini-las com o comando chcon
ou usando uma combinação de semanage
e restorecon
chcon -t home_root_t /home
chcon -Rt user_home_dir_t /home/*
ou
semanage fcontext -a -t home_root_t /home
semanage fcontext -a -t user_home_dir_t /home/*
restorecon -R /home
observe que geralmente falando chcon
é usado para forçar uma alteração imediata, deixando os padrões no lugar, para que restorecon
os restaure para os contextos padrão. No seu caso, isso parece ter dado errado por algum motivo.
Geralmente, semanage fcontext
destina-se a gravar um arquivo de contexto local em /etc/selinux/targeted/contexts/files/file_contexts.local
uma riqueza de informações sobre o contexto atual e o contexto padrão podem ser encontrados em:
/etc/selinux/targeted/contexts/default_contexts
/etc/selinux/targeted/contexts/files/file_contexts
/etc/selinux/targeted/contexts/files/file_contexts.homedirs
É possível que, de alguma forma, esses arquivos tenham sido danificados de alguma forma e, em geral, há muitos subcontextos que podem não ser totalmente restaurados pelas ações acima, dependendo de como esses arquivos foram modificados. Pode ser uma boa ideia examinar esses arquivos e ver se você pode encontrar o mapeamento de contexto adicionado e removê-lo dessa maneira também.
Teoricamente, você também pode usar uma máquina virtual, ou outra máquina (ou talvez encontrá-las on-line) e copiar os bons padrões conhecidos em seus diretórios adequados, e permitir que o sistema seja reclassificado para obter os padrões apropriados. Isso também terá algumas curtas embora.No final do dia, um pouco de tentativa e erro será necessário, os comandos chcon / semanage listados acima devem dar-lhe os traços gerais, mas é possível que alguns dos seus subdiretórios tenham seus próprios contextos.
Alguns contextos adicionais que podem ser úteis (todos estão em / home / username seriam:
ls -laZ /home/username
##context########################### Directory##
unconfined_u:object_r:cache_home_t:s0 .cache
unconfined_u:object_r:config_home_t:s0 .config
unconfined_u:object_r:dbus_home_t:s0 .dbus
unconfined_u:object_r:gconf_home_t:s0 .gconf
unconfined_u:object_r:gconf_home_t:s0 .gconfd
unconfined_u:object_r:gpg_secret_t:s0 .gnupg
unconfined_u:object_r:gconf_home_t:s0 .local
unconfined_u:object_r:ssh_home_t:s0 .ssh
Por favor, note que isto é baseado no meu diretório home, haverá mais que você pode ter que caçar, mas se você acertar a maioria deles, você deve estar mais ou menos de volta aos trilhos.