强制 PHP CLI 将文件作为 www 数据写入

有没有办法使 PHP CLI 调用的脚本将 () 作为 www 数据进行重写?

目前,如果我创建一个文本文件并使用我自己的自定义脚本写入它,则该文件将创建为root,并且具有非常小的权限:rw- r -- r--php writeToLogFile.php

这意味着,如果我想在apache中向此文件写入更多数据(以w-data身份运行),我将被拒绝权限。

这是一个更大的系统的一部分,所以对我来说,对我创建的每个文件进行chmod()或chown()是不切实际的。我也不想在PHP中设置umask(),因为这可能会干扰其他线程。

我还应该提到该文件正在写入不同服务器上的NFS共享(所有服务器都是Ubuntu)。该文件夹共享为:/myfolder/logsfiles 01.02.03.04(rw,sync,no_subtree_check,no_root_squash)

提前感谢您。


湖上湖
浏览 90回答 2
2回答

HUX布斯

php无法更改进程运行的用户标识,只有特权(例如 setuid)程序才能执行此操作。您需要以 运行脚本作为 。www-datasudo -u www-data php writeToLogFile.php

慕勒3428872

执行此命令将首先切换用户,而不是仅以用户身份执行代码...sudo su www-data && php writeToLogFile.phpwww-data
打开App,查看更多内容
随时随地看视频慕课网APP