Apache-2.2

CentOS apache啟動配置文件安全錯誤

  • December 8, 2020

我正在 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]

該文件具有以下權限:

-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

是什麼給出的,一個具有完全相同權限的文件應該可以被 apache 服務訪問?

嘗試檢查包含 netdisco_apache.conf 的文件夾的權限

你是對的 Apache 應該能夠訪問該文件,因為它具有相同的權限,但它可能無法訪問它包含的文件夾。

如果您不想更改文件夾權限,只需將 netdisco_apache.conf 移動到 /etc/httpd/conf 目錄(如果這樣做,請記住在 /etc/httpd/conf/httpd.conf 文件中更新對它的引用.)

我將新的配置文件放在 /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

注意最後的部分。這就是所謂的上下文。我已經將它創建為我的使用者,這給了它 unconfined_u 部分。為了解決這個問題,我跑了:

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

這解決了問題。

引用自:https://serverfault.com/questions/382289