Вы можете (как 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
находится)
Сценарий RC находится по адресу /usr/local/etc/rc.d/fcgiwrap
.
Глядя на код, fcgiwrap_user
устанавливает владельца процесса, в котором запущен демон (по умолчанию root
).
Вам необходимо установить fcgiwrap_socket_owner="www"
, чтобы установить владельца сокета.
Ответ Ричарда Смита также сработал для меня, но в моем случае мне также пришлось установить fcgiwrap_socket_group="www"
.
Эти настройки кажутся новыми, потому что раньше было достаточно установить fcgiwrap_user="www"
.