Apache-2.2
CentOS apache啟動配置文件安全錯誤
我正在 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
這解決了問題。