我在selinux中为nginx创build了一个策略,我对于一个特定的问题有一个问题:
我的网站数据位于/websites/websitename.com/alldatahere。 我有超过150个网站,所以我不想为每个网站手动添加规则。
在我的nginx.fc文件中,我想把/websites/anywebsite.com/*中的所有文件都放到php文件的nginx_websites_ttypes中。 然后我会给nginx_t(nginx运行的受限进程)读取nginx_websites_t的权限。
所以最后我会有两种types:
nginx_websites_t - for all files except php php_websites_t - for php files
我尝试了以下所有文件:
/websites/*.*(/.*)? gen_context(system_u:object_r:nginx_websites_t,s0)
但似乎并没有工作。 我真的没有太多的正则expression式的经验,但是当我在nginx中导入每个网站的configuration文件时,我可以把它放在我的nginx conf中:
include /websites/configuration/*.*/*.conf
我在我的fc文件中尝试了相同的方法,但是正如你所看到的那样,这是行不通的。
这是我的整个FC文件:
/websites/*.*(/.*)? gen_context(system_u:object_r:nginx_websites_t,s0) /websites/selinux/nginx/(/.*)? gen_context(system_u:object_r:nginx_rw_t,s0) /etc/init.d/nginx -- gen_context(system_u:object_r:nginx_exec_t,s0) /usr/sbin/nginx -- gen_context(system_u:object_r:nginx_exec_t,s0) /var/lib/nginx(/.*)? gen_context(system_u:object_r:nginx_var_lib_t,s0) /var/log/nginx(/.*)? gen_context(system_u:object_r:nginx_log_t,s0) /usr/share/nginx(/.*)? gen_context(system_u:object_r:nginx_usr_t,s0) /etc/nginx(/.*)? gen_context(system_u:object_r:nginx_etc_t,s0) /run/nginx -- gen_context(system_u:object_r:nginx_pid_t,s0)
我不认为你需要我的整个te文件,但这里是添加文件types的行:
type nginx_websites_t; files_type(nginx_websites_t);