多くのタグに対してSELinuxコンテキストを設定する簡単な方法 - CentOS 8

多くのタグに対してSELinuxコンテキストを設定する簡単な方法 - CentOS 8

私が使用しているクラウドVPSプロバイダの1つは/ dataディスクにほとんどのストレージを提供するので、私のWebルート/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

関連情報