Subversion自动路径授权

时间:2013-07-16 13:53:00

标签: svn

我正在尝试为subversion找到一个基于路径的自动授权工具。或者关于如何更有效地管理大型auth文件的建议

目前,我们拥有超过1000个用户,150个群组和550个访问规则。 auth文件大约有1500行。

管理此大小的存储库结构需要时间,最终需要花钱。同一组中有许多重复用户,多个组不必要地重叠等。

我没有运气找到更自动化的解决方案来管理这种规模的auth文件。搜索用户,确保没有重复项,将用户添加到具有正确权限的正确存储库中,有时一次超过10个用户。至少可以使用vi来完成这项任务。

我们有一个自动备份脚本运行器,当您运行它时,它会创建一个备份,然后允许您修改auth文件。这是关闭生产线的唯一一个错误。

我找到的一个工具很安全。一个很好的工具,但似乎不是从我的服务器上的机器编辑文件的简单方法。击败我正在寻找的目的。

我需要一个工具,能够清理我当前的auth文件,查找重复项,并将用户添加到正确的repo,创建repos的新路径以及新的用户组。

是否有任何工具或建议对这种规模的回购结构有益?

仅供参考:SVN在Linux机器上运行。

2 个答案:

答案 0 :(得分:3)

如果您可以将您的工作更改为 其他人的工作,该怎么办?

使用Apache httpd的Subversion与LDAP身份验证完美集成,这意味着(如果您是Windows商店),它也可以与Windows域和Active Directory一起使用。 Windows Active Directory组成为Subversion身份验证组。你可以说这个组(相对于一大群人)可以访问存储库的这一部分。

而且,如果有人需要被安排到某个团体,那就不再是你的工作了。相反,它们需要被放置在正确的Active Directory组中,而且神奇地,它们也将获得所需的Subversion访问权限。没有svn_auth文件的更改或文档。不再更改svn_access文件。

考虑两组控制权:

  • 阅读权限
  • 写入权限

在大多数商店中,几乎所有开发人员都可以获得Read访问权限。写访问可以通过预提交钩子或Subversion身份验证和访问文件来控制。

我通常做的是有一个名为“开发”的Windows Active Directory组,任何想要对Subversion存储库进行读取访问的人都属于。如果您拥有Windows帐户,并且您是该组的成员,则可以访问Subversion存储库。

然后我使用我的预提交钩子来微调此访问权限,以便为各种项目取消各种人的读取权限。人们可以签出代码并阅读代码,但除非他们拥有我的钩子的写入权限,否则他们无法更新代码。以下是subversion.conf httpd配置中的访问设置示例:

<Location /src>
        DAV svn
        SVNParentPath /opt/svn_repos
        SVNListParentPath on
        AuthType basic
        AuthName "Vegicorp Subversion Repository"
        AuthBasicProvider ldap
        AuthzLDAPAuthoritative off
        AuthLDAPURL "ldap://ldap.vegicorp.com:3268/dc=vegicorp,dc=com?sAMAccountName" NONE
        AuthLDAPBindDN "CN=SVNRobot,OU=Users,OU=Accounts,DC=vegicorp,DC=com"
        AuthLDAPBindPassword "Sw0rdf1sh"
        Require ldap-group CN=Development, OU=Groups, OU=Accounts, DC=vegicorp, DC=com
        Require ldap-group CN=CM-robots, OU=Groups, OU=Accounts, DC=vegicorp, DC=com
</Location>

现在,组DevelopmentCM-robots中的任何人都可以访问我们的Subversion存储库。

然后我使用pre-commit挂钩来控制写访问。此挂钩取决于Control文件以进行配置。我可以做的一件事是将控制文件放在我的Subversion存储库中。这样,管理员(因为每个经理都有一个单独的存储库)可以编辑控制文件并确定谁拥有或没有访问权限。这使得管理人员可以确定谁应该和不应该访问他们的项目,而无需通过我。

答案 1 :(得分:1)

关于谵妄的权利:

在Windows主机上有repos-tree的镜像。使用VisualSVN Server管理此镜像 - 它具有良好的服务器管理小程序,您可以在其中管理GUI样式的用户/组/ ACL。用master编辑后用rsync VisualSVN Server的authz文件

enter image description here