Назад | Перейти на главную страницу

Ошибка безопасности файла конфигурации запуска CentOS apache

Я настраиваю машину NetDisco на CentOS, что влечет за собой добавление включения в файл apache httpd.conf.

Когда я запускаю apache, запустив «httpd» из командной строки root, запускается процесс.

Когда я пытаюсь запустить apache, запустив «service httpd start», я получаю следующий результат:

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?

Я поместил свой новый файл конфигурации в каталог / 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

Обратите внимание на часть в конце. Это называется контекстом. Я создал его как мой пользователь, который дал ему часть unlimited_u. Чтобы исправить это, я запустил:

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

Это устранило проблему.

Попробуйте проверить права доступа к папке, содержащей netdisco_apache.conf

Вы правы, Apache должен иметь доступ к файлу, поскольку он имеет те же разрешения, но может не иметь доступа к папке, в которой он содержится.

Если вы не хотите изменять права доступа к папке, просто переместите netdisco_apache.conf в каталог / etc / httpd / conf (не забудьте обновить ссылку на него в файле /etc/httpd/conf/httpd.conf, если вы это сделаете .)