在PHP下以不同用户身份删除文件

在PHP下以不同用户身份删除文件

我以用户身份运行 PHP www-data,而 Nginx 以用户身份运行nginx。我需要删除/var/cache/nginx/用户拥有的中的文件nginx,我想使用 PHP 来执行此操作。

有没有办法允许www-data删除文件/var/cache/nginx/

或者有没有办法在 PHP 中rm以用户身份执行?nginx

答案1

在操作系统级别,您可以通过两种方式解决此问题:

  • 文件系统 ACL(有点复杂)
  • 用户组——我认为这有点容易

脚步:

  • 修改 nginx 的 init 脚本以包含umask 007- 这将允许创建具有组可写权限的文件
  • 修改用户www-data以使其也属于nginx该组 - 例如usermod -a -G nginx www-data
  • 重新启动受影响的服务就好了。

答案2

您可以使用扩展文件系统访问列表进行调整,例如

setfacl -R -d -mu:www-data:rwX /var/cache/nginx

答案3

我更新了我的nginx.conf以运行 Nginx www-data,这成功了。

相关内容