如何为 php/apache 添加写权限?

如何为 php/apache 添加写权限?

我有以下场景:
有一个名为“uploads”的文件夹。它的所有者是“root”,其组是“webmasters”。权限设置为 755。

drwxrwsr-x  2 root webmasters 4096 Mar 20 22:49 upgrade

使用此设置,我无法在“升级”中通过 php 创建文件。如果我将权限更改为 777,我可以在升级中创建文件。

但情况是这样的:
我的 Apache 以 www-data 的身份运行。因此,我将 webmaster 组作为主要组添加到用户 www-data。

root@mymachine: /var/www# id www-data
uid=33(www-data) gid=1002(webmasters) groups=1002(webmasters),33(www-data)

那么为什么我需要将“upgrade”的权限设置为 777?如果文件夹“upgrade”具有组“webmasters”,而用户“www-data”具有组/在组 webmasters 中,并且权限设置为 775,则所有组成员都应该获得“7”权限,并且应该能够读取、写入和执行。

我已经重启了机器,所以我确信系统正确识别了所有组分配。那么我做错了什么?

edit:// 当我将组从“webmasters”更改为“www-data”时,我获得了 775 的写入权限。当我将组切换回 webmasters 时,它不起作用。问题是为什么?用户 www-data 同时属于 www-data 和 webmasters 两个组。

答案1

Apache 以 www-data 用户和 www-data 组的身份运行。该组在其配置中明确指定,将用户添加到更多组不会对此产生影响。

您可以在 httpd.conf 中更改 Apache 运行的组。

相关内容