Linux中的跨组文件权限

我有2个用户:Alice和Bob,以及2个:pipe理和人员。 爱丽丝有主要的小组pipe理人员和二级小组人员和爱丽丝。 鲍勃有主要人员和辅助组鲍勃。

现在,它们都需要对/ var / svn / new-project /中的本地Subversion存储库进行读/写访问。 问题是,当Alice向存储库提交时,Bob不能再提交给它,因为他不在Alice的主要组的pipe理组中。

我的问题:如何启用这两个读取和写入到存储库没有弄乱权限,同时保持他们在不同的主要组,没有chmod're回到目录777,并没有运行一个每分钟修复权限的cronjob?

您可能需要启用目录上的setgid位,并将目录组设置为普通组(在本例中为Personnel)。 setuid / setgid在目录下创build的文件被赋予目录的所有者/组。

使用ACL(访问控制列表)。 文档在这里: http : //docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Storage_Administration_Guide/ch-acls.html

您的设置示例:

setfacl --recursive -mu:Alice:rwx /var/svn/new-project/ setfacl --recursive -mu:Bob:rwx /var/svn/new-project/ 

使存储库文件夹结构由组人员拥有。

770上的权限,并确保两个用户都有一个00X的umask。

(如果需要,将subversion客户端包装成一个小脚本,在使用之前将umask设置为00x。)

除非你的Subversion客户端在更新版本库时用文件权限做了一些不寻常的事情,这应该就足够了。