强制PHP CLI将文件写为www-data

问题描述 投票:0回答:2

是否有一种方法可以使PHP CLI调用的脚本将fwrite()作为www-data?

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

这意味着然后如果我想在apache中将更多数据写入该文件(以www-data运行),则会获得权限被拒绝。

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

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

先谢谢您。

php apache ubuntu permissions
2个回答
1
投票

执行sudo su www-data && php writeToLogFile.php这将首先切换用户,然后仅以www-data用户的身份执行您的代码...


0
投票

php无法更改进程运行的用户ID,只有特权程序(例如setuid)才能执行此操作。您需要以www-data身份运行脚本。

sudo -u www-data php writeToLogFile.php
© www.soinside.com 2019 - 2024. All rights reserved.