单个SVN回购中的文件夹权限

我们有一个大的SVN回购设置与其中的多个文件夹,如:

/svn /folder1 /folder2 /folder3 

我们使用SVN + SSH,并把每个人都放入一个拥有回购的“svn”组。 我想让每个人都可以访问folder1和folder2,但是只有特定的用户组可以访问folder3(读和写)。

有没有办法呢? 或者我应该只是想把folder3从SVN移到别的东西上?

谢谢

当你说访问,你的意思是SVN访问(checkout / commit / etc)? 如果是这样,你可能想看看svnserve本身的授权选项,因为它允许基于path的授权。

你可以在这里读更多关于它的内容:

http://svnbook.red-bean.com/nightly/en/svn.serverconfig.pathbasedauthz.html

如果您可以控制svn服务器中的文件系统,并且该文件系统支持ACL(例如ext3 / 4),则可以启用ACL以对svn树的权限进行粒度控制。

您可以通过以下方式为您的分区启用acls:

 mount partition-name -o remount,acl 

或通过编辑你的fstab:

 /dev/foo /mount-point ext3 defaults,acl 1 2 

然后通过以下方式更改svn树中的权限:

 ~# setfacl -R -mg:"moreprivilegegroup":rwx /path/svnbase/ ~# setfacl -R -d -mg:"moreprivilegegroup":rwx /path/svnbase/ ~# setfacl -R -mg:"lessprivilegegroup":rwx /path/svnbase/ ~# setfacl -R -d -mg:"lessprivilegegroup":rwx /path/svnbase/ ~# setfacl -R -mg:"lessprivilegegroup":rx /path/svnbase/folder3 ~# setfacl -R -d -mg:"lessprivilegegroup":rx /path/svnbase/folder3 

因此,您将拥有一个名为“moreprivilegegroup”的组,具有对完整树的完全权限和一个名为“lessprivilegegroup”的组,对完整树具有完全权限,但对folder3(及其子文件夹)中的文件进行编辑/

目录folder3将存储这两个组的权限,这些权限不能用默认的unix权限来完成。

用相应的用户填充两个组,然后完成。

这个例子并不全面,只是作为一个例子。 阅读setfaclgetfacl手册页获取更多信息。