如果我是从头开始这样做的话,我会创建这两个独立的存储库。不幸的是,我必须处理那里的事情。
我们的存储库如下所示:
/trunk
/tags
/branches
/secret/trunk
/secret/tags
/secret/branches
我的SVN配置设置如下:
<Location /gorp>
DAV svn
SVNPath /mnt/svn/repositories/gorp
AuthType basic
AuthName "Vegicorp Repostitory"
AuthBasicProvider ldap
AuthzLDAPAuthoritative off
AuthLDAPUrl "ldap://ldap.vegicorp.net:389/DC=vegicorp,DC=NET?sAMAccountName" NONE
AuthLDAPBindDN "CN=ldap-read,,OU=Users,OU=vegicorp,DC=vegicorp,DC=net"
AuthLDAPBindPassword swordfish
Require ldap-group CN=Development,OU=Groups,OU=vegicorp,DC=vegicorp,DC=net
AuthzSVNAccessFile /opt/CollabNet_Subversion/repos_path_access/gorp
</Location>
这很有效。 LDAP组Development
中的所有用户都可以访问我们的存储库。但是,并非所有开发人员都能够看到secret
目录。相反,我只希望cabal
LDAP组中的用户能够访问它。
而且,我在gorp
访问目录下的文件repos_path_access
如下所示:
[/]
* = r
[/trunk]
* = rw
[/branches]
* = rw
[/tags]
* = rw
[/secret]
dvadar = rw
cpalpatine = rw
glucas = rw
* =
到目前为止,这么好。我的cabal
群组用户dvadar
,cpalpatine
和glucas
可以访问我的存储库中的/secret
目录,其他人甚至都看不到它。但是,随着人们来去,我必须手动更改此基于路径的访问文件。我想要做的是让我的基于路径的访问权限为cabal
访问所有人,并为其他人隐藏它:
[/]
* = r
[/trunk]
* = rw
[/branches]
* = rw
[/tags]
* = rw
[/secret]
@cabal = rw
* =
这不起作用。相反,我在日志中看到了这一点:
Tue Sep 03 11:30:50 2013] [error] [client 10.55.9.217] \
Failed to load the AuthzSVNAccessFile: An authz rule refers to group '@cabal'
在没有其他开发人员看到此目录的情况下,让cabal
组访问secret
的最佳方式是什么?
答案 0 :(得分:3)
明显的方式:
在AuthzSVNAccessFile中定义cabal组成员。
@cabal
CN=cabal
棘手的方式
<Location /gorp/secret>
指令添加其他Require ldap-group
,并将组完全维护在LDAP中答案 1 :(得分:0)
我没有找到任何当前用于同步SVN authz和LDAP工作的项目,所以我创建了一个新项目。
可以在这里找到: https://github.com/rbw0/authzync
是的,我知道这是一个老帖子。但是,搜索解决方案的用户很可能会在这里结束。
答案 2 :(得分:-1)
我的问题与你的问题非常相似,应该完全回答:
@ZTE_OHSAS_administrators = rw
~@ZTE_OHSAS_administrators =
那个人应该工作
¡干杯!