我正在开发一个应用程序,该应用程序需要多个用户有权访问名为“预览”的目录。
所以我将每个用户的主要组设置为www
当文件包含一组 www
时,应用程序可以正常工作。
问题在于这些文件是通过 http 请求创建的,这意味着 apache
用户正在创建该文件。
当我运行时
id apache
我得到uid=48(apache) gid=501(www) groups=501(www),48(apache)
但文件的所有者和组是apache apache
我不知道如何让 apache 创建所有者和组为 apache www
的文件
提前致谢。我花了很多天试图解决这个问题。
最佳答案
设置gid
在创建文件的目录中,您可以将该目录设置为所需的组,并设置 setgid 位,以便该目录中的所有文件都具有相同的组。
如果目录中没有您想要的组,请使用 chown。
chown用户名:www目录/
ls -lld目录/应该有“用户名www”。
chmod g+s 目录/
ls -lld 应在组“x”所在的位置显示“s”,drwxr-sr-...
cd目录/
触摸测试文件
ls -ll 测试文件
文件 testFile 应该是“用户名 www”。
我不知道这里链接信息的规则,但谷歌“oracle setgid”找到一个很好的文档。
关于当 gid=501(www) 时,Linux 写入文件并将组设置为 apache 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46976532/