많은 태그에 대해 SELinux 컨텍스트를 설정하는 빠른 방법 - CentOS 8

많은 태그에 대해 SELinux 컨텍스트를 설정하는 빠른 방법 - CentOS 8

내가 사용하는 클라우드 VPS 공급자 중 하나는 /data 디스크에 대부분의 저장소를 제공하므로 내 웹 루트 /data/www/var/www.

목표는 아래의 모든 규칙을 복사하여 로 변경하는 것을 /var/www제외하고 동일한 규칙을 만드는 것이라고 생각합니다 . 빨리 할 수 ​​있는 방법이 있나요?/var/www/data/www

[~]$ sudo semanage fcontext -l | grep -i /var/www
/var/www(/.*)?                                     all files          system_u:object_r:httpd_sys_content_t:s0
/var/www(/.*)?/logs(/.*)?                          all files          system_u:object_r:httpd_log_t:s0
/var/www/[^/]*/cgi-bin(/.*)?                       all files          system_u:object_r:httpd_sys_script_exec_t:s0
/var/www/apcupsd/multimon\.cgi                     regular file       system_u:object_r:apcupsd_cgi_script_exec_t:s0
... many more ...

나는 다음을 제공하여 하나씩 완료하는 방법만 알고 있습니다.

sudo semanage fcontext -a -t httpd_sys_content_t "/data/www(/.*)?"
sudo restorecon -R -v /data/www

이것은 규칙 1번을 처리합니다. 빨리 할 수 ​​있는 방법이 있나요?

답변1

를 찾습니까바꾸다우연히? ~에서man semanage-fcontext:

옵션

    -e EQUAL,--equal EQUAL
      기본 라벨을 생성할 때 대상 경로를 소스 경로로 바꿉니다. 이것은 와 함께 사용됩니다 fcontext. 소스 경로 및 대상 경로 매개변수가 필요합니다. 대상 하위 트리의 컨텍스트 레이블은 소스 하위 트리에서 정의된 컨텍스트 레이블과 동일합니다.
          ︙

    파일 컨텍스트를 설정할 때 /home1다음으로 바꾸십시오./home

    # semanage fcontext -a -e /home /home1
    # restorecon -R -v /home1
    

데모:

mkdir -p /data/www2/html
touch /data/www2/html/foo
semanage fcontext -a -e /var/www /data/www2
restorecon -R /data/www2
ls -lhZ /data/www2/html/
-rw-r--r--. 1 root root unconfined_u:object_r:httpd_sys_content_t:s0 0 15. Jul 15:31 foo

관련 정보