Nginx на FreeBSD: отказано в разрешении на fcgiwrap.sock

Вы можете (как user1 ) что-то делать как

sudo -u website cat ~website/somefile > ~user1/somefile

Обратите внимание, что ~ user1 / somefile сначала будет создан пользователем, запустившим оболочку ( user1 ), а cat будет выполняться как ] website

Вы можете использовать tar (1) с тем же трюком для нескольких файлов:

sudo -u website tar cf - ~website/foo ~website/bar | tar xf -

Запустите как user1 в его каталоге, который «создаст» tar-архив на stdout как website , а другой tar (без sudo, поэтому запущенный от имени того же пользователя, что и тот, у кого запущена оболочка, то есть user1 ) распакует этот виртуальный tar-файл в текущий каталог (в который user1 может писать).

ОБНОВЛЕНИЕ Обратите внимание, что tar создаст подкаталоги, ведущие к файлу, вы можете уменьшить это поведение, указав -C , чтобы tar входил в указанный каталог перед запуском:

sudo -u website tar -C ~website -cf - foo bar | tar xf -

Таким образом, ] foo и bar будут созданы в текущем каталоге без ведущих подкаталогов (но если вы добавите blah / baz , это создаст blah как подкаталог в который baz находится)

2
13.04.2017, 18:55
2 ответа

Сценарий RC находится по адресу /usr/local/etc/rc.d/fcgiwrap.

Глядя на код, fcgiwrap_user устанавливает владельца процесса, в котором запущен демон (по умолчанию root).

Вам необходимо установить fcgiwrap_socket_owner="www", чтобы установить владельца сокета.

7
27.01.2020, 21:53

Ответ Ричарда Смита также сработал для меня, но в моем случае мне также пришлось установить fcgiwrap_socket_group="www". Эти настройки кажутся новыми, потому что раньше было достаточно установить fcgiwrap_user="www".

2
27.01.2020, 21:53

Теги

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