CentOS apache启动configuration文件安全错误

我在CentOS上设置NetDisco计算机,这需要在apache httpd.conf文件中添加一个include。

当我通过从根命令提示符运行“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] 

该文件具有这些权限:

 -rw-r--r--. 1 root root 1798 Apr 22 18:46 netdisco_apache.conf 

而httpd.conf有这些权限:

 -rw-r--r--. 1 root root 34520 Apr 22 17:06 httpd.conf 

是什么赋予了EXACT相同权限的文件当然可以被apache服务访问?

尝试检查包含netdisco_apache.conf的文件夹的权限

你是对的,Apache应该能够访问该文件,因为它具有相同的权限,但可能无法访问它所包含的文件夹。

如果您不想更改文件夹权限,只需将netdisco_apache.conf移动到/ etc / httpd / conf目录(请记住在/etc/httpd/conf/httpd.conf文件中更新对该文件的引用。)

我把我的新的configuration文件放在/ 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 

注意最后的部分。 这被称为上下文。 我已经创build了它作为我的用户,它给了它的unconfined_u部分。 要解决这个问题,我跑了:

 sudo chcon system_u:object_r:httpd_config_t:s0 httpd-vhosts.conf 

这解决了这个问题。