php - 强制 PHP CLI 将文件写入 www-data

标签 php apache ubuntu permissions

有没有办法让 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/

相关文章:

java - 无法访问 jar 文件? [Ubuntu、Linux]

django - 如何在任何产品(Nginx 和 Gunicorn)中访问和设置环境变量

python - 由于与 GI 相关的 python 脚本中的错误,Gnome 终端未启动

apache - Centos系统上www-data用户和apache用户一样吗

php - Opencart Checkout我的sql错误

php - 从数据库中选择 2 条记录,这些记录不存在于另一个数据库的 2 个字段中

php - Symfony2 + 学说 : Tool for generating relations between entities

apache - .htaccess中的条件SetEnv?

apache - 使用 Apache mod_rewrite 相关问题到文件夹的子域

javascript - Laravel 连接多个表来获取数据