Прежде чем перейти к ответу, вы должны приложить все усилия, чтобы избавиться от вредных привычек безопасности, связанных с использованием chmod 777 или отключением SELinux. Скорее, вам следует полностью изучить модель разрешений UNIX, чтобы вы всегда знали правильные разрешения, и вам следует настроить свои службы для работы с SELinux, чтобы воспользоваться дополнительными уровнями безопасности, которые он предоставляет.
Таким образом, причина, по которой ваш сокет, спрятанный глубоко в домашнем каталоге пользователя, не работает, заключается в том, что родитель разрешения каталога запрещают необходимый доступ (в этом случае поиск Икс
). Использовать namei -l /home/***/.deploy/my.sock
чтобы увидеть разрешения всех родительских каталогов сразу, и исправить те, которые не разрешают поиск (скорее всего, это /дом/***
).
chmod +x /по мере необходимости
Также не забудьте исправить права и владельца самого сокета по мере необходимости.
Для полноты, причина, по которой ваш сокет в /tmp
не было обнаружено, что nginx, работающий как системная служба, не может получить доступ к системе /tmp
каталог. Systemd запускает его с PrivateTmp=истина
что приводит к созданию уникального частного каталога и /tmp
пространство имен в этом каталоге. Это то, что все те /tmp/xxx-systemd-private-foo
каталоги предназначены для.