한 디렉터리에서 SELinux 컨텍스트를 복사하여 다른 디렉터리에 적용하는 방법은 무엇입니까?
예제 사용 시나리오는 다음과 같이 기본 /home 경로 외부에 새 로컬 사용자를 생성하는 것입니다.
$ sudo useradd -d /websites Tim
이렇게 하면 Tim의 홈 디렉터리가 생성되고 /websites
Tim에 대한 올바른 권한과 소유권이 설정되지만 아래와 같이 SELinux 컨텍스트가 다른 사용자와 다릅니다.
# ls -dZ /websites
drwx------. Tim Tim system_u:object_r:etc_runtime_t:s0 /websites
내가 원하는 것은 다른 사용자의 /home 디렉토리에서 SELinux 컨텍스트를 복사하여 Tim의 /websites
디렉토리에 적용하는 것입니다.
다른 사용자를 위한 SELinux 컨텍스트는 다음과 같습니다.
# ls -Z /home/
drwx------. Ben Ben unconfined_u:object_r:user_home_dir_t:s0 Ben
drwx------. Bob Bob unconfined_u:object_r:user_home_dir_t:s0 Bob
drwx------. lexy lexy unconfined_u:object_r:user_home_dir_t:s0 lexy
답변1
이는 아래와 같이 -a
및 플래그를 사용하여 간단히 수행할 수 있습니다.-e
semanage fcontext -a -e /home/Ben '/websites(/.*)?'
-a
: 추가하다,
-e
: 동등한
그 후에는 다음과 같이 Restorecon을 실행해야 합니다.
restorecon -vvRF /websites
그리고 새 파일 컨텍스트가 적용됩니다.
-v
:파일 레이블 변경 사항을 표시합니다.
-R
:재귀,
-F
:강제 컨텍스트 재설정
다음 명령을 사용하여 SELinux 파일 컨텍스트를 변경할 수도 있습니다.
semanage fcontext -a -t httpd_sys_content_t '/website(/.*)?'
그럼에도 불구하고 이는 새로운 파일 컨텍스트를 할당합니다.
-a
: 추가하다,
-t
: 유형