как удалить метку SELinux?

как удалить метку SELinux?

Я добавил метку SELinux svirt_sandbox_file_tв/home

chcon -Rt svirt_sandbox_file_t /home

Метка отображается с помощью:

[user@localhost ~]$ ls -Z
unconfined_u:object_r:svirt_sandbox_file_t:s0 Desktop
unconfined_u:object_r:svirt_sandbox_file_t:s0 Documents
...

Как мне svirt_sandbox_file_tснова удалить этикетку?

Я пробовал перезагружать, я добавил /home/.autorelabelдля запуска перемаркировки, но метка не исчезает. Я использую Fedora 23.

решение1

Я считаю, что если вы установите /etc/selinux/configперезагрузку disabled. Затем установите enforcingи перезагрузите, он перемаркирует, если у вас возникли проблемы с перемаркировкой в ​​противном случае. Странно, что restorecon не сработал.

Если вы хотите сбросить настройки жестким способом, то сам каталог /home должен быть таким:

system_u:object_r:home_root_t

и каждый домашний каталог пользователя (и файлы в нем) должны быть:

unconfined_u:object_r:user_home_dir_t:s0

Вы можете установить их либо с помощью chconкоманды, либо с помощью комбинации semanageиrestorecon

chcon -t home_root_t /home
chcon -Rt user_home_dir_t /home/*

или

 semanage fcontext -a -t home_root_t /home
 semanage fcontext -a -t user_home_dir_t /home/*
 restorecon -R /home

обратите внимание, чтовообще говоря chconиспользуется для принудительного немедленного изменения, оставляя при этом значения по умолчанию, так что a restoreconвосстановит его в контекстах по умолчанию. В вашем случае это, похоже, по какой-то причине пошло не так.

Обычно semanage fcontextпредназначен для записи локального контекстного файла в/etc/selinux/targeted/contexts/files/file_contexts.local

большой объем информации о текущем контексте и контекстах по умолчанию можно найти здесь:

/etc/selinux/targeted/contexts/default_contexts
/etc/selinux/targeted/contexts/files/file_contexts
/etc/selinux/targeted/contexts/files/file_contexts.homedirs

Возможно, что каким-то образом эти файлы были повреждены, и в целом существует множество подконтекстов, которые не могут быть полностью восстановлены вышеуказанными действиями в зависимости от того, как эти файлы были изменены. Возможно, будет хорошей идеей изучить эти файлы и посмотреть, сможете ли вы найти добавленное сопоставление контекста и удалить его таким же образом.

Теоретически вы также можете взять виртуальную машину или другую машину (или, возможно, просто найти их в сети) и скопировать известные хорошие значения по умолчанию в соответствующие каталоги и позволить системе переименовать их, чтобы получить правильные значения по умолчанию. Хотя и здесь будут некоторые недостатки.

В конце дня потребуется немного проб и ошибок; команды chcon/semanage, перечисленные выше, должны дать вам общие сведения, но возможно, что некоторые из ваших подкаталогов будут иметь свои собственные контексты.

Некоторые дополнительные контексты, которые могут быть полезны (все они находятся в /home/username):

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

Обратите внимание, что эта информация основана на моем домашнем каталоге, возможно, вам придется поискать и другие, но если вы правильно угадаете большинство из них, то вы более или менее вернетесь на правильный путь.

Связанный контент