Принудительно PHP CLI записывать файлы как www-data - PullRequest
0 голосов
/ 10 февраля 2020

Есть ли способ сделать PHP CLI-вызываемые скрипты для fwrite () как www-data?

В настоящее время, если я создаю текстовый файл и пишу в него, используя свой собственный скрипт php writeToLogFile.php файл создается как root с минимальными правами доступа: rw- r-- r -

Это значит, что если я захочу записать дополнительные данные в этот файл в apache (работает как www-data), я получаю отказано в разрешении.

Это часть более крупной системы, поэтому для меня было бы непрактично использовать chmod () или chown () для каждого файла, который я создаю. Я также не хочу устанавливать umask () в PHP, так как это может мешать другим потокам.

Я должен также упомянуть, что файл записывается в общий ресурс NFS на другом сервере (все серверы это Ubuntu). Общая папка имеет вид: /myfolder/logsfiles 01.02.03.04(rw,sync,no_subtree_check,no_root_squash)

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 10 февраля 2020

php не может изменить ИД пользователя, под которым запускается процесс, это могут делать только привилегированные (например, setuid) программы. Вам нужно запустить скрипт как www-data.

sudo -u www-data php writeToLogFile.php
1 голос
/ 10 февраля 2020

выполнить sudo su www-data && php writeToLogFile.php это сначала переключит пользователя, а затем выполнит ваш код как www-data только для пользователя ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...