![通过 http 设置 SVN 服务器供多个用户使用](https://linux22.com/image/488341/%E9%80%9A%E8%BF%87%20http%20%E8%AE%BE%E7%BD%AE%20SVN%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%BE%9B%E5%A4%9A%E4%B8%AA%E7%94%A8%E6%88%B7%E4%BD%BF%E7%94%A8.png)
SVN 注释功能非常强大,可以快速找到特定代码行上的特定功能。如果用户通过 http 访问 SVN,则此功能会受到一些限制(但仍然有用)。这种方式不会交换任何凭据,因此注释不会显示由使用 http 提交更改的开发人员修改的行的名称。
问题是,开发人员是否有办法将某种凭据传递给服务器上的 SVN,以唯一地标识他们的提交?在这种环境中,只需要一个 ID。svn+ssh 和文件协议等替代方法不可用。最后,此服务器位于内部 LAN 上,而不是公共 LAN 上。也欢迎提供 https 提示。
SVN 服务器在 Linux 上使用 Apache2 运行。
答案1
在 Apache 配置中:
<Location /svn>
DAV svn
SVNPath /mnt/big/svn
AuthType Basic
AuthName "SVN Server"
AuthUserFile /etc/apache2/svn.pass
Require valid-user
AuthzSVNAccessFile /etc/apache2/svn_authz
并且 /etc/apache2/svn_authz 可以包含谁可以访问什么的细粒度管理:
[groups]
ops=user1,user2
it=user2,user3
[/]
* = rw
[/ops]
* =
@ops=rw
[/ro]
* =
@ops = r
@it = r
user4 = rw
如果您手头有 ldap / active directory 服务器,则可以使用它代替 AuthUserFile 进行 apache 身份验证。
答案2
由于您通过 Apache 运行 SVN,因此您可以利用 Apache 的内置身份验证方法来控制对存储库的访问/跟踪更改。以下示例将与 htaccess 样式的设置一起使用:
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /path/to/user/list
Require valid-user
您可以在 htaccess 文件或 VirtualHost 配置文件中进行此项配置。
答案3
简短回答:mod_authz_svn
您可以在 2009 年国际 PHP 大会上我展示的幻灯片中了解有关 apache + svn + mod_autz_svn 和其他内容,请访问http://superalbert.it/download/misc/PHPCon09_SVN_advanced.pdf
答案4
该答案假设您的开发人员使用 Windows 并且您有一个 Active Directory 域控制器。
您可以按照以下步骤将 Linux svn 服务器加入域文章。
从那里,你可以配置 apache 使用 Kerberos 向 AD 进行身份验证。首先安装mod_auth_kerb,然后将 apache2 连接到 kerberos 进行身份验证。请参阅 Microsoft 的文档。如果您担心客户端和服务器之间的安全性,请确保实施 SSL。
完成后,用户可以使用他们的 Windows 密码登录,并且活动将分配给他们的用户。
不幸的是,我现在无法为您提供具体的配置详细信息,因为我不在办公室并且无法访问我们的 svn 服务器。