CentOS 7.5, Linux 3.10.0-862.3.2.el7.x86_64에서 파일 컨텍스트가 어떻게 작동하는지 이해하려고 합니다. ls -Z
, 예상대로 작동 chcon
하는 것 같지만 고집스럽게 침묵하는 것 같습니다.semanage
restorecon
예를 들어:
$ cd
$ mkdir context
$ ls -laZ
drwxrwxr-x liteyear liteyear ? context
$ chcon -v unconfined_u:object_r:user_home_t:s0 context
$ ls -laZ
drwxrwxr-x. liteyear liteyear unconfined_u:object_r:user_home_t:s0 context
$ rmdir context
모든 것이 괜찮습니다 semanage
.
$ mkdir context
$ sudo semanage fcontext -a -t user_home_t /home/liteyear/context
$ cat /etc/selinux/targeted/contexts/files/file_contexts.local
# This file is auto-generated by libsemanage
# Do not edit directly.
/home/liteyear/context system_u:object_r:user_home_t:s0
모든 것이 괜찮지만 restorecon
경로는 다음과 같습니다.
$ restorecon -v /home/liteyear/context
$ ls -laZ
drwxrwxr-x liteyear liteyear ? context
파일 컨텍스트가 적용되지 않습니다.
기존 컨텍스트, 다른 컨텍스트, 다른 폴더 및 파일을 사용하여 다양한 반복을 시도했지만 restorecon
결과가 나오지 않았습니다. 다양한 유사한 보고서가 있습니다(예:[CentOS] SELinux Restorecon이 작동하지 않습니다) 그러나 아무도 문제가 있음을 확인하지 않은 것 같습니다.
restorecon
이렇게 되어야 할까요?
답변1
SELinux가 활성화된 실행 중인 시스템에서 새 파일과 디렉터리는 상위 디렉터리의 컨텍스트를 상속하거나 정책 규칙에 따라 컨텍스트를 적용합니다. 이 예에서는 SELinux 컨텍스트를 적용하지 않고 생성되는 디렉터리를 보여주며 보안 컨텍스트 열의 출력에서 볼 수 있습니다 ls -Z
.?
이는 시스템에서 SELinux가 활성화되지 않았음을 나타냅니다. SELinux가 활성화되면 시스템은 자동으로 파일 컨텍스트를 적용합니다.
sestatus
명령을 사용하여 SELinux 상태를 확인할 수 있습니다 .
SELinux를 다시 활성화하려면 다음을 확인해야 합니다.문서미리. 레이블 재지정(적용할 레이블 누락)을 허용하려면 먼저 시스템을 허용 모드에서 부팅해야 하며, 적용 모드로 전환하기 전에 명백한 문제를 해결해야 합니다.
SELinux에는 일반적으로 몇 가지 구성이 필요합니다.파일이 기본 정책에 포함되지 않은 위치에 있을 수 있습니다.또는 애플리케이션에 기본 정책에서 허용하는 것보다 더 많은 권한이 필요할 수 있습니다. audit2allow
이는 SELinux 로그를 조사할 때 audit2why
유용한 도구로 , 종종 잘못된 파일 레이블을 표시하거나 문제를 해결할 수 있는 부울 값을 제안합니다.
SELinux도허가 도메인정책의 나머지 부분은 시행 모드로 유지하면서 특정 도메인(프로세스)에 대해 SELinux를 비활성화하는 데 사용할 수 있습니다. 허용 모드에서는 적용 모드와 동일한 방식으로 로그가 생성되며, 그렇지 않으면 액세스가 거부됩니다. 분명히 허용된 도메인에서 애플리케이션을 실행하는 것은 SELinux를 비활성화한 상태에서 애플리케이션을 실행하는 것과 사실상 동일합니다.