我的 VPS 云提供商是在磁盘下提供大部分存储的提供商之一/data
,因此 Webroot 实际上位于/data/www
而不是/var/www
,并且有一个从/var/www
到 的符号链接/data/www
,以便默认的 Apache 配置可以工作。
服务器启动时禁用了 SELinux,Wordpress 和 Postfix 运行良好。因此,当我将 SELinux 启用为宽容模式时,我通过 Cockpit 看到了很多错误。我是 SELinux 的新手,我做了这些:
sudo semanage fcontext -a -t httpd_sys_content_t "/data/www(/.)?"
sudo restorecon -R -v /data/www
sudo semanage fcontext -a -t httpd_sys_content_t "/data/www/html(/.)?"
sudo restorecon -R -v /data/www/html
在第一对命令之后,令我惊讶的是该httpd_sys_content_t
类型并未传播到所有内容。于是我尝试了第二对,结果是一样的。仅 2 个目录:/data/www
和/data/www/html
设置为所需类型。
我可能误解了semanage和restorecon的使用。请帮助。目标是为 中的这些事物设置正确的类型/data
。
为了完整起见,我再次执行此操作,并复制粘贴下面的连续行。 (重复该命令时我使用-m
代替正确吗?)-a
semanage
[~]$ sudo semanage fcontext -m -t httpd_sys_content_t "/data/www/html(/.)?"
[sudo] password for johnsmith:
[~]$ sudo restorecon -R -v /data/www/html
[~]$ ls -lZ /data/www/html/
total 24
drwxrwxr-x. 3 apache apache system_u:object_r:default_t:s0 4096 Jul 14 15:15 foo
-rw-r--r--. 1 apache apache system_u:object_r:default_t:s0 430 Mar 2 18:51 index.php
-rw-r--r--. 1 apache apache system_u:object_r:default_t:s0 1402 Mar 4 11:00 bar.gif
drwxr-xr-x. 12 apache apache system_u:object_r:default_t:s0 4096 Mar 3 16:29 pmadir
drwxr-xr-x. 10 apache apache system_u:object_r:default_t:s0 4096 Feb 24 12:05 sendy
drwxr-xr-x. 10 apache apache system_u:object_r:default_t:s0 4096 Jun 11 06:48 wordpress
[~]$
答案1
您可能在那里错过了*
(通配符):
sudo semanage fcontext -a -t httpd_sys_content_t "/data/www(/.*)?"