CentOS apache 启动配置文件安全错误

Joo*_*oon 0 security configuration centos6 apache-2.2

我正在 CentOS 上设置 NetDisco 机器,这需要向 apache httpd.conf 文件添加一个包含。

当我通过从根命令提示符运行“httpd”来启动 apache 时,进程会启动。

当我尝试通过运行“service httpd start”来启动 apache 时,我得到以下输出:

Starting httpd: httpd: Syntax error on line 1010 of /etc/httpd/conf/httpd.conf: 
Could not open configuration file /usr/local/netdisco/netdisco_apache.conf: 
Permission denied
                                                                  [FAILED]
Run Code Online (Sandbox Code Playgroud)

该文件具有以下权限:

-rw-r--r--. 1 root root  1798 Apr 22 18:46 netdisco_apache.conf
Run Code Online (Sandbox Code Playgroud)

并且 httpd.conf 具有以下权限:

-rw-r--r--. 1 root root 34520 Apr 22 17:06 httpd.conf
Run Code Online (Sandbox Code Playgroud)

是什么让apache服务可以访问具有完全相同权限的文件?

小智 7

我将我的新配置文件放在 /etc/httpd/conf 目录中,但这并没有解决问题。然后我更改了权限以匹配 httpd.conf 并没有解决问题。

然后我了解了命令ls -Z。我的输出看起来像:

-rw-r--r--. root   root system_u:object_r:httpd_config_t:s0 httpd.conf
-rw-r--r--. root root unconfined_u:object_r:user_home_t:s0 httpd-vhosts.conf
Run Code Online (Sandbox Code Playgroud)

注意最后的部分。这就是所谓的上下文。我创建了它作为我的用户,它给了它 unconfined_u 部分。为了解决这个问题,我跑了:

sudo chcon system_u:object_r:httpd_config_t:s0 httpd-vhosts.conf
Run Code Online (Sandbox Code Playgroud)

这解决了问题。