Рейтинг:-1

Отказано в разрешении сокета centos8 nginx uwsgi

флаг in
dav

Я настроил uwsgi и nginx для работы через сокет (chmod 777), который находится в домашнем каталоге пользователя, но nginx не может получить доступ к сокету (13: Отказано в доступе в журнал ошибок). Пытался переместить сокет в /tmp/ с 777 chmod, но потом получил ошибку 2: Нет такого файла или каталога

21.09.2021, 19:40:16 [крит] 68278#0: *17 не удалось подключиться() к unix:///tmp/my.sock (2: нет такого файла или каталога) при подключении к восходящему потоку, клиент: ***, сервер: ***, запрос: "GET / HTTP/1.1", восходящий поток: "uwsgi://unix:///tmp/my.sock:", хост: "****"

2021/09/21 20:10:16 [крит] 517#0: *1 connect() to unix:/home/***/.deploy/my.sock не удалось (13: Отказано в доступе) при подключении к восходящему потоку, клиент: ***, сервер: ***, запрос: "GET / HTTP/1.1", восходящий поток: "uwsgi://unix:/home/***/.deploy/my.sock:", хост: " ***"

P.S.Селинукс отключен

Рейтинг:2
флаг cz

Прежде чем перейти к ответу, вы должны приложить все усилия, чтобы избавиться от вредных привычек безопасности, связанных с использованием chmod 777 или отключением SELinux. Скорее, вам следует полностью изучить модель разрешений UNIX, чтобы вы всегда знали правильные разрешения, и вам следует настроить свои службы для работы с SELinux, чтобы воспользоваться дополнительными уровнями безопасности, которые он предоставляет.


Таким образом, причина, по которой ваш сокет, спрятанный глубоко в домашнем каталоге пользователя, не работает, заключается в том, что родитель разрешения каталога запрещают необходимый доступ (в этом случае поиск Икс). Использовать namei -l /home/***/.deploy/my.sock чтобы увидеть разрешения всех родительских каталогов сразу, и исправить те, которые не разрешают поиск (скорее всего, это /дом/***).

chmod +x /по мере необходимости

Также не забудьте исправить права и владельца самого сокета по мере необходимости.

Для полноты, причина, по которой ваш сокет в /tmp не было обнаружено, что nginx, работающий как системная служба, не может получить доступ к системе /tmp каталог. Systemd запускает его с PrivateTmp=истина что приводит к созданию уникального частного каталога и /tmp пространство имен в этом каталоге. Это то, что все те /tmp/xxx-systemd-private-foo каталоги предназначены для.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.