Linux 当 gid=501(www) 时向 apache 写入文件和设置组

Linux issue writing files and setting group to apache when the gid=501(www)

我正在开发一个需要多个用户访问名为 previews 的目录的应用程序。

所以我将每个用户的主要组设置为www

当文件包含一组 www 时,应用程序可以正常工作。

问题是文件是通过 http 请求创建的,这意味着 apache 用户正在创建文件。

当我运行 id apache

我得到 uid=48(apache) gid=501(www) groups=501(www),48(apache)

但是文件的所有者和组是 apache apache

我不知道如何让 apache 创建所有者和组为 apache www

的文件

提前致谢。我花了很多天时间想弄明白。

setgid

在创建文件的目录中,您可以将该目录设置为您想要的组并设置setgid位,因此该目录中的所有文件都具有相同的组。

如果目录没有你想要的组,使用chown

chown username:www 目录/

ls -lld 目录/ 应该有“用户名 www”。

chmod g+s 目录/

ls -lld 应该在组“x”所在的位置显示“s”,drwxr-sr-...

cd目录/

触摸测试文件

ls -ll 测试文件

文件testFile应该是“用户名www”。

不知道这里链接信息的规则,不过google“oracle setgid”找个好文档