如何将目录设置为具有持久组权限?
Posted
技术标签:
【中文标题】如何将目录设置为具有持久组权限?【英文标题】:How do you set a directory to have persistent group permissions? 【发布时间】:2010-10-06 10:45:00 【问题描述】:我们有两个用户:
用户1 用户2他们都属于“管理员”组。
我们有一个已设置为 775 的目录。该目录的组已更改为“admin”。每个用户都具有写入该目录的完全权限,但是当用户将新文件写入该目录时,该文件夹的组权限不会保留到写入的文件中。
我们应该如何让文件继承目录的组权限?
澄清:当一个新的文件或目录被写入时,它使用用户组作为新文件的组,而不是目录的组,这是有道理的——但是我怎么不让它发生呢?
【问题讨论】:
【参考方案1】:您可以通过设置目录的 setgid 位 (chmod g+s
) 来传播组权限。 这可能无法在所有 *nixes 和所有文件系统中移植。
http://en.wikipedia.org/wiki/Setuid#setgid_on_directories
http://www.gnu.org/software/coreutils/manual/html_node/Directory-Setuid-and-Setgid.html
【讨论】:
请注意,这是符合 SYSV 的行为,您可以通过在 dirs 上使用 +s 来修改它。 BSD 的行为一直是具有组继承。 它可以跨 POSIX 兼容的系统移植,这(至少对于这个目的)意味着任何以 X 结尾的东西(Unix、Linux、MacOS X)。【参考方案2】:如果您使用的是 ext3 或 ReiserFS,这个page about creating a Linux file server 可能会有所帮助。具体来说,第 7 步建议使用以下命令。
setfacl -d -m g:sales:rw /groups/sales
【讨论】:
【参考方案3】:我觉得你应该看看here。
正如该网站所说,“Unix 不支持继承权限的概念。”
但是,我认为您正在寻找关于 ACL(访问控制列表)的部分。通过设置 ACL,您可以让您的文件从目录继承相同的 ACL,我认为这正是您所要求的。 setfacl 是您需要查看的 shell 命令。
希望有帮助!
【讨论】:
以上是关于如何将目录设置为具有持久组权限?的主要内容,如果未能解决你的问题,请参考以下文章