Agregué la etiqueta SELinux svirt_sandbox_file_t
a/home
chcon -Rt svirt_sandbox_file_t /home
La etiqueta se muestra usando:
[user@localhost ~]$ ls -Z
unconfined_u:object_r:svirt_sandbox_file_t:s0 Desktop
unconfined_u:object_r:svirt_sandbox_file_t:s0 Documents
...
¿Cómo puedo quitar la svirt_sandbox_file_t
etiqueta nuevamente?
Intenté reiniciar, agregué un /home/.autorelabel
para activar el reetiquetado, pero la etiqueta no desaparece. Estoy usando Fedora 23.
Respuesta1
Creo que si configuras /etc/selinux/config
el disabled
reinicio. Luego configúrelo enforcing
y reinícielo; se volverá a etiquetar si ha tenido problemas para volver a etiquetarlo. Sin embargo, es extraño que recoverycon no haya funcionado.
Si desea restablecer las cosas de la manera más difícil, el directorio /home debería ser:
system_u:object_r:home_root_t
y cada directorio de inicio de usuario (y los archivos que contiene) debe ser:
unconfined_u:object_r:user_home_dir_t:s0
Puede configurarlos con el chcon
comando o usando una combinación de semanage
yrestorecon
chcon -t home_root_t /home
chcon -Rt user_home_dir_t /home/*
o
semanage fcontext -a -t home_root_t /home
semanage fcontext -a -t user_home_dir_t /home/*
restorecon -R /home
tenga en cuenta quegeneralmente hablando chcon
se utiliza para forzar un cambio inmediato, dejando los valores predeterminados en su lugar, de modo que restorecon
lo restaurará a los contextos predeterminados. En su caso, eso parece haber salido mal por alguna razón.
Generalmente semanage fcontext
se pretende escribir un archivo de contexto local para/etc/selinux/targeted/contexts/files/file_contexts.local
Se puede encontrar una gran cantidad de información sobre el contexto actual y el contexto predeterminado en:
/etc/selinux/targeted/contexts/default_contexts
/etc/selinux/targeted/contexts/files/file_contexts
/etc/selinux/targeted/contexts/files/file_contexts.homedirs
Es posible que de alguna manera esos archivos se hayan dañado de alguna manera y, en general, hay muchos subcontextos que es posible que no se restablezcan completamente mediante las acciones anteriores, dependiendo de cómo se hayan modificado esos archivos. Puede ser una buena idea examinar esos archivos y ver si puede encontrar el mapeo de contexto agregado y eliminarlo de esa manera también.
En teoría, también podría tomar una máquina virtual u otra máquina (o tal vez simplemente encontrarlas en línea) y copiar los valores predeterminados conocidos en sus directorios adecuados y permitir que el sistema vuelva a etiquetarlos para obtener los valores predeterminados adecuados. Sin embargo, esto también tendrá algunas deficiencias.
Al final del día, será necesario un poco de prueba y error, los comandos chcon/semanage enumerados anteriormente deberían brindarle las líneas generales, pero es posible que algunos de sus subdirectorios tengan sus propios contextos.
Algunos contextos adicionales que pueden ser útiles (todos estos están en /home/nombre de usuario serían:
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
Tenga en cuenta que esto se basa en mi directorio de inicio, habrá más que tendrá que buscar, pero si obtiene la mayoría de ellos correctamente, debería volver más o menos al camino correcto.