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”找个好文档
我正在开发一个需要多个用户访问名为 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”找个好文档