matchpathcon
파일(예: /usr/lib64/gconv/gconv-modules.cache)에 대해 사용하면 다음을 얻습니다.
/usr/lib64/gconv/gconv-modules.cache system_u:object_r:lib_t:s0
하지만:
# ls -alZ /usr/lib64/gconv/gconv-modules.cache
-rw-r--r--. root root unconfined_u:object_r:lib_t:s0
따라서 파일에 올바른 컨텍스트가 없는 것 같습니다(사용자 부분이 일치하지 않음). 그러나 restorecon -v
실행 시 파일은 변경되지 않습니다.
나는 이것을 할 수 있다:
# chcon -t httpd_sys_content_t /usr/lib64/gconv/gconv-modules.cache
# ls -alZ /usr/lib64/gconv/gconv-modules.cache
-rw-r--r--. root root unconfined_u:object_r:httpd_sys_content_t:s0
# restorecon -v /usr/lib64/gconv/gconv-modules.cache
unconfined_u:object_r:httpd_sys_content_t:s0 -> unconfined_t:object_r:lib_t:s0
restorecon
따라서 컨텍스트가 아닌 파일의 SELinux 만 업데이트되는 것 같습니다 . 이것은 버그입니까, 아니면 이 동작에 대한 설명이 있습니까? 문서(type
user
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Security-Enhanced_Linux/sect-Security-Enhanced_Linux-Working_with_SELinux-SELinux_Contexts_Labeling_Files.html)은 컨텍스트가 일치하지 않고 예상대로 변경된 파일에 대한 복구 작업을 보여줍니다 user
.unconfined_u->system_u
운영 체제: RedHat 7.3
SELinux: 3.13.1-102.el7_3.16
답변1
지원 사례를 연 후 저는 Red Hat 문서에 오해가 있었고 매뉴얼 페이지를 더 주의 깊게 읽어야 했다는 사실을 발견했습니다.
# man restorecon
...
If a file object does not have a context, restorecon will write the
default context to the file object's extended attributes. **If a file
object has a context, restorecon will only modify the type portion of
the security context. The -F option will force a replacement of the
entire context.**
...