我正在使用 WordPress,我希望 WordPress 创建的文件拥有创建它们的文件的用户,而不是运行 Web 服务器的用户。例如,我的 WordPress 文件和目录归philip
组所有www-data
。当 WordPress 创建文件时,我希望文件的所有者是philip
而不是www-data
.
这可能吗?我怀疑它可以用setuid
or实现sticky bit
,但我不知道如何应用它。
不是没有很多额外的努力。根据您的描述,听起来您可能正在使用 mod_php 或类似的东西运行 PHP;它将始终以 Web 服务器用户身份在 Web 服务器中运行。setuid/setgid 仅在执行新进程时才起作用,此处并非如此。
您可以通过使用 CGI 或 FastCGI 运行 PHP(这将让您以自己的用户身份运行所有 PHP 脚本)来解决此问题,但这是您可能不想进入的大量额外设置。
如果您不希望该组具有访问权限,您可以使用粘滞位来设置g-rwx
. 问题setgid
(您要求更改组,而不是用户)是运行命令的用户必须具有分配该组的权限。如果您不希望网络服务器(即 www-data)有权访问,那么您可能不想将 gid 更改为它有权访问的任何组。否则,您需要通过 cron 或其他调度程序让其他具有其他权限的进程出现并为 Web 服务器进行此更改。