我正在尝试为subversion找到一个基于路径的自动授权工具。或者关于如何更有效地管理大型auth文件的建议
目前,我们拥有超过1000个用户,150个群组和550个访问规则。 auth文件大约有1500行。
管理此大小的存储库结构需要时间,最终需要花钱。同一组中有许多重复用户,多个组不必要地重叠等。
我没有运气找到更自动化的解决方案来管理这种规模的auth文件。搜索用户,确保没有重复项,将用户添加到具有正确权限的正确存储库中,有时一次超过10个用户。至少可以使用vi来完成这项任务。
我们有一个自动备份脚本运行器,当您运行它时,它会创建一个备份,然后允许您修改auth文件。这是关闭生产线的唯一一个错误。
我找到的一个工具很安全。一个很好的工具,但似乎不是从我的服务器上的机器编辑文件的简单方法。击败我正在寻找的目的。
我需要一个工具,能够清理我当前的auth文件,查找重复项,并将用户添加到正确的repo,创建repos的新路径以及新的用户组。
是否有任何工具或建议对这种规模的回购结构有益?
仅供参考:SVN在Linux机器上运行。
答案 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>
现在,组Development
或CM-robots
中的任何人都可以访问我们的Subversion存储库。
然后我使用pre-commit挂钩来控制写访问。此挂钩取决于Control文件以进行配置。我可以做的一件事是将控制文件放在我的Subversion存储库中。这样,管理员(因为每个经理都有一个单独的存储库)可以编辑控制文件并确定谁拥有或没有访问权限。这使得管理人员可以确定谁应该和不应该访问他们的项目,而无需通过我。
答案 1 :(得分:1)
关于谵妄的权利:
在Windows主机上有repos-tree的镜像。使用VisualSVN Server管理此镜像 - 它具有良好的服务器管理小程序,您可以在其中管理GUI样式的用户/组/ ACL。用master编辑后用rsync VisualSVN Server的authz文件