Centos

為許多標籤設置 SELinux 上下文的快速方法 - CentOS 8

  • July 15, 2020

我正在使用在 /data 磁碟上提供大部分儲存的雲 VPS 提供商之一,因此我的 webroot 位於/data/www而不是/var/www. 並且有一個符號連結,因此 Apache 可以在預設配置下正​​常工作。

我認為目標是複制所有規則/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

這需要注意第一條規則。有沒有辦法快速做到?

您是否正在尋找替代品?來自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

引用自:https://unix.stackexchange.com/questions/598589