4

如果我从头开始这样做,我会创建这两个独立的存储库。不幸的是,我不得不使用那里的东西。

我们的存储库如下所示:

/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目录。相反,我只希望cabalLDAP 组中的用户能够访问它。

而且,我gorp在上述repos_path_access访问目录下的文件如下所示:

[/]
* = r

[/trunk]
* = rw

[/branches]
* = rw

[/tags]
* = rw

[/secret]
dvadar = rw
cpalpatine = rw
glucas = rw
* = 

到目前为止,一切都很好。我的cabal组用户 、dvadarcpalpatine可以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

4

3 回答 3

3

明显方式:

在 AuthzSVNAccessFile 中定义阴谋集团成员。

  • 您可以手动完成(每次更改成员时编辑成员)
  • 您可以找到并使用 LDAP-to-Authz 同步脚本(在此处提到,在某处)在 LDAP 中更改@cabal时进行更新CN=cabal

棘手的方式

  • <Location /gorp/secret>您可以使用更改的指令添加其他内容Require ldap-group并完全在 LDAP 中维护组
于 2013-09-03T17:54:13.520 回答
-1

我没有发现任何当前用于将 SVN authz 与 LDAP 同步的项目令人满意,所以我创建了一个新项目。

它在这里可用: https ://github.com/rbw0/authzync

是的,我知道这是一个旧帖子。但是寻找解决方案的用户可能会在这里结束。

于 2017-03-03T13:25:22.247 回答
-1

我有一些与您的问题非常相似的问题,应该完全回答:

@ZTE_OHSAS_administrators = rw
~@ZTE_OHSAS_administrators =

那一个应该工作

干杯!

于 2016-07-20T13:41:46.407 回答