有没有办法让 PHP CLI 调用的脚本将 fwrite() 作为 www-data?
目前,如果我创建一个文本文件并使用我自己的自定义脚本写入它 php writeToLogFile.php
, 该文件以 root 身份创建,并且具有非常小的权限: rw- r-- r--
这意味着如果我想在 apache 中向这个文件写入更多数据(作为 www-data 运行),我会被拒绝权限。
这是一个更大系统的一部分,因此对我创建的每个文件都进行 chmod() 或 chown() 是不切实际的。我也不想在 PHP 中设置 umask(),因为这可能会干扰其他线程。
我还应该提到该文件正在写入不同服务器上的 NFS 共享(所有服务器都是 Ubuntu)。文件夹共享为:/myfolder/logsfiles 01.02.03.04(rw,sync,no_subtree_check,no_root_squash)
先感谢您。
最佳答案
php
无法更改进程运行的用户 ID,只有特权(例如 setuid)程序可以这样做。您需要以 www-data
身份运行脚本.
sudo -u www-data php writeToLogFile.php
关于php - 强制 PHP CLI 将文件写入 www-data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60150325/