¿Cómo eliminar la etiqueta SELinux?

¿Cómo eliminar la etiqueta SELinux?

Agregué la etiqueta SELinux svirt_sandbox_file_ta/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_tetiqueta nuevamente?

Intenté reiniciar, agregué un /home/.autorelabelpara activar el reetiquetado, pero la etiqueta no desaparece. Estoy usando Fedora 23.

Respuesta1

Creo que si configuras /etc/selinux/configel disabledreinicio. Luego configúrelo enforcingy 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 chconcomando o usando una combinación de semanageyrestorecon

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 chconse utiliza para forzar un cambio inmediato, dejando los valores predeterminados en su lugar, de modo que restoreconlo restaurará a los contextos predeterminados. En su caso, eso parece haber salido mal por alguna razón.

Generalmente semanage fcontextse 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.

información relacionada