如何配置DAV svn访问?
我试图限制对本地subversion服务器上存储库的访问。我已经使用Apache和如何配置DAV svn访问?,svn,Svn,我试图限制对本地subversion服务器上存储库的访问。我已经使用Apache和dav_svn_模块和authz_svn_模块设置了它。目前,它的工作非常好,用户登录,可以提交罚款 我想要实现的是一个单一的存储库,它只能由一个用户读写 我的/etc/httpd/conf.d/subversion.conf如下 <Location /svn> DAV svn SVNParentPath /var/www/svn # Limit write permission t
dav_svn_模块
和authz_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>
但是,这目前限制了对服务器上每个存储库的访问,这并不理想。如何将访问配置为特定于单个存储库
另外,这是一个内部服务器,所以尽管我非常感谢对生产的建议,但这并不是必需的
更新我现在已经更新了我的
svnauthz.conf
文件
[groups]
devs = david.yell,user2,user3
[ProtectedRepo:/]
david.yell = rw
* =
[/]
$authenticated = rw
@devs = rw
* =
我试图用它作为参考,但它在这里引用
更具体地说:节名称的值是
格式[repos name:path]或格式[path]。如果你正在使用
SVNParentPath指令,那么指定存储库很重要
请在您的分区中输入名称。如果省略它们,那么
[/some/dir]将匹配每个存储库中的路径/some/dir
这是否意味着我需要声明服务器上的每个回购协议?目前大约有30个
设置每个目录访问控制,以区分用户对每个WEBDAV存储库/路径的权限
对于Apache,需要加载mod_authz_svn模块,然后添加指向您自己的规则文件的authzsvnacessfile指令(在httpd.conf文件中)。(有关完整的解释,请参阅“每个目录访问控制”部分。)如果您使用的是svnserve,则需要使authz db变量(在svnserve.conf中)指向您的规则文件
可以使用第二个apachehttpd模块mod_authz_svn设置更细粒度的权限。此模块获取从客户端传递到服务器的各种不透明URL,请求mod_dav_svn对其进行解码,然后可能根据配置文件中定义的访问策略否决请求
如果您是从源代码构建Subversion的,那么mod_authz_svn将自动构建并与mod_dav_svn一起安装。许多二进制发行版也会自动安装它。要验证它是否正确安装,请确保它位于httpd.conf中mod_dav_svn的LoadModule指令之后:
参考资料
[groups]
devs = david.yell,user2,user3
[ProtectedRepo:/]
david.yell = rw
* =
[/]
$authenticated = rw
@devs = rw
* =