SELinux 파일 컨텍스트, Restorecon은 "사용자" 컨텍스트를 변경하지 않습니다.

SELinux 파일 컨텍스트, Restorecon은 "사용자" 컨텍스트를 변경하지 않습니다.

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 만 업데이트되는 것 같습니다 . 이것은 버그입니까, 아니면 이 동작에 대한 설명이 있습니까? 문서(typeuserhttps://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.**
...

관련 정보