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
레이블 변경을 실행하기 위해 하나를 추가했지만 레이블이 사라지지 않습니다. 저는 페도라 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
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
이것은 내 홈 디렉토리를 기반으로 하며 더 많은 것을 찾아야 할 수도 있지만 올바른 항목을 대부분 얻으면 어느 정도 정상으로 돌아올 것입니다.