Nginx говорит open() "/etc/nginx/conf.d/foo.conf" failed (13: Permission denied)

GNU не примет что-то как проект, если разработчики не согласятся на определенные соглашения, которые связывают все официальные проекты GNU.

В настоящее время ядро Linux, вероятно, не соответствует этим ограничениям, и нет ничего для Linus Torvalds, kernel.org, и др. чтобы получить от размещения себя под зонтиком GNU и много проиграть - вышеупомянутое обязывающее соглашение и общественное восприятие, что ядро является теперь проектом GNU, который оказал бы главным образом негативное влияние. Головная организация GNU, Фонд свободного программного обеспечения (FSF), является политической организацией, и Torvalds сделал различные общедоступные критические замечания из нее и несколько спорного, направленного против предрассудков пожизненного лидера/основателя GNU и FSF, Richard M. Stallman.

Далее, ядро Linux больше не требует пространства пользователя GNU, чем пространство пользователя GNU требует ядра Linux. Эту независимость должны считать хорошей вещью основные принципы разработки программного обеспечения, которые способствуют модульному принципу и более свободной связи в противоположность противоположному (монолитные вещи с плотным соединением).

Другая точка против этой идеи - то, что, в то время как HURD не может представлять интереса для стольких же людей сколько Linux, разработчики и пользователи HURD могут возразить против наличия их проекта эффективно dustbinned в конкурсе популярности. И хороший для них; "конкуренция" этого вида является положительным моментом, тогда как поклон к монополизации не - Вы заканчиваете с крупными объектами, которые душат креативность частично, потому что они подвержены управлению monolithic/meglomaniacal. Основа Linux уже является независимой организацией, это могло бы также остаться тот путь.

11
28.07.2015, 08:08
3 ответа

Когда вы получаете отказано в разрешении ошибки при доступе к файлам и т. Д. По неизвестной причине , это может быть связано с SELinux. Особенно, если после разрешений вы видите точку drwxr-xr-x. показано ls -l для рассматриваемого файла / каталога, они могут быть неправильно помечены (вы можете увидеть это по ls -Z ) и вызвать проблему.

Вы должны сначала проверить текущий режим SELinux, запустив getenforce . Если он говорит Enforcing , то временно установите режим на Permissive , запустив setenforce 0 , и посмотрите, будет ли ваше приложение работать после этого.

Пожалуйста, обратитесь к руководству вашего дистрибутива по SELinux для постоянного исправления, включая настройку режима SELinux при запуске, перемаркировку файлов или каталогов, обновление политик и т. Д. Вот Howto for CentOS .

19
27.01.2020, 19:57

Изменение всего SElinux не всегда является правильным решением. Я не эксперт, но я бы сравнил это с отключением брандмауэра, если порт недоступен.

Другим быстрым решением может быть «восстановление SE-контекста» файлов, особенно если они откуда-то скопированы.

Подробнее см. https://www.thegeekstuff.com/2017/05/restorecon-examples/.

Эти команды стоит попробовать перед отключением SElinux

sudo restorecon  /etc/nginx/conf.d/
sudo restorecon  /etc/nginx/conf.d/*
2
27.01.2020, 19:57

Лучшим способом, чем отключение selinux, является использование команды

semanage permissive -a httpd_t

Это позволит пройти службу toe nginx без полного отключения selinux

Подробнее оhttps://www.nginx.com/blog/using-nginx-plus-with-selinux/

Однако у меня запущен command chcon -v --type=httpd_sys_content_t /etc/nginx/*, и он работает правильно, без необходимости исключения httpd _t

0
27.01.2020, 19:57

Теги

Похожие вопросы