我想限制访问我的本地Subversion服务器上的存储库。我已经使用Apache和dav_svn_module
和authz_svn_module
进行设置。目前它运行良好,用户登录,并可以提交罚款。如何配置DAV svn访问?
我想实现的是一个只能由单个用户读取和写入的单一存储库。
我/etc/httpd/conf.d/subversion.conf
如下
<Location /svn>
DAV svn
SVNParentPath /var/www/svn
# Limit write permission to list of valid users.
<LimitExcept GET PROPFIND OPTIONS REPORT>
# Require SSL connection for password protection.
# SSLRequireSSL
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile /etc/svn-auth-users
Require valid-user
AuthzSVNAccessFile /etc/svnauthz.conf
</LimitExcept>
</Location>
我/etc/svnauthz.conf
如下所示,
[groups]
devs = david.yell,user2,user3
[/]
$authenticated = rw
@devs = rw
* =
然而,这是目前限制访问所有存储库中的服务器,这是不太理想的。我如何着手将访问配置为特定于单个存储库?
另外,这是一个内部服务器,所以尽管我非常感谢生产建议,但这不是必需的。
更新
我已经更新了我现在svnauthz.conf
文件,
[groups]
devs = david.yell,user2,user3
[ProtectedRepo:/]
david.yell = rw
* =
[/]
$authenticated = rw
@devs = rw
* =
我想用这个作为参考,http://svnbook.red-bean.com/en/1.4/svn.serverconfig.pathbasedauthz.html但在这里引用
更具体:部分名称的值是 表单[repos-name:path]或表单[path]中的任一个。如果您使用的是 SVNParentPath指令,则在部分中指定存储库 名称很重要。如果你忽略它们,那么像 [/ some/dir]这样的部分将匹配每个存储库中的路径/ some/dir。
这是否意味着我需要声明服务器上的每一个回购?目前约有30个
设置对用户存储库/路径的访问权限。 http://svnbook.red-bean.com/en/1.4/svn.serverconfig.pathbasedauthz.html –
感谢您的链接,我现在有这个设置。然而,我的'受保护;回购将不允许访问。 –
只需要说一下你使用的“$ authenticated”语法:我不知道这是存在的。这是记录在某处吗?我只能在http://svn.apache.org/repos/asf/subversion/trunk/subversion/libsvn_repos/authz.c找到它 –