当 gid=501(www) 时,Linux 写入文件并将组设置为 apache 的问题

标签 linux file-ownership

我正在开发一个应用程序,该应用程序需要多个用户有权访问名为“预览”的目录。

所以我将每个用户的主要组设置为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/

相关文章:

linux - 如何在 bash 中将命令和选项存储在单独的变量中

c++ - linux如何从串口接收完整的数据

svn - SVN 是否跟踪文件所有权和权限?

linux - 更改文件创建时的 Linux 用户默认所有权?

Android Linux内核资料/检查工具

linux - Perf 输出奇怪的内存地址

linux - 从默认的 linux 命令行无限向上滚动

当您不是文件所有者时,Java File.setLastModified() 在 Linux 上失败

windows - 如何在 Windows 中取得多个文件的所有权?