基于svnserve的服务器,权限文件authz配置的常见问题及解答

最近在我用Subversion论坛 (http://www.iUseSVN.com/bbs) 经 常有人提到这样的问题:
为什么我的客户端 没有写权限
为什么我的权限没有起作用?

总结他们的配置,发现
都是用svn serve作为服务器
都在svnserve .conf 中使用了authz -db选项

原因可能如下:

1,配置authz时,没有注意svnserve启动参数-r所指定的目录
这里有两种情况:
A:-r直接指定到版本库 (称之为单库svnserve方式)
比如,有一个库project1,位于D:/svn/project1
使用以下命令 启动svnserve

  1. svnserve -d -r D:/svn/project1
复制代码

在这种情况下,一个 svnserve只能为一个版本库工作
authz文件 如果配置成下面这样就是错的,

  1. [groups]
  2. admin =user1
  3. dev=user2
  4. [project1:/]
  5. @admin=rw
  6. @doc=r
复制代码

应 该配置成

  1. [groups]
  2. admin=user1
  3. dev=user2
  4. [/]
  5. @admin=rw
  6. @doc=r
复制代码

因 为[project1:/]表示库project1的根目录,而按上面的启动参数,是没有库的概念的。
使用类似这样的URL:svn://192.168.0.1/ 即可访问 project1

B:-r指定到版本库的上级目录(称之为多库svnserve方式)
同样,有一个库project1,位于D:/svn/project1
如果使用以下命令启动svnserve

  1. svnserve -d -r D:/svn
复制代码

这 种情况,一个svnserve可以为多个版本库工作,
这时如果想限制指定库的指定目录,就应该指定具体的库,像这样

  1. [groups]
  2. admin=user1
  3. dev=user2
  4. [project1:/]
  5. @admin=rw
  6. @doc=r
复制代码

如 果此时你还用[/],则表示所有库的根目录,同理,[/src]表示所有库的根目录下的src目录
使用类似这样的URL:svn://192.168.0.1/project1 即可访问project1
这样的URL:svn://192.168.0.1/project2 即可访问project2

2,对中文 目录进行权限控制时,没有将权限文件authz改为 utf-8格式

svn对于非英文文件名和目录名使用utf-8格式编码处理,要对中文目录进行正确控制,
应该使用无BOM的utf-8格式,如何将默认的文件转为utf-8,
我使用的是UltraEdit的菜单&quot ;ASCII to UTF-8 (Unicode Editing)"。在UltraEdit的配置中,可以设置 有无BOM

更多参考文档
(配置权限控制文件)http://bbs.iusesvn.com/thread-6-1-1.html
(中文目录权限控制)http://bbs.iusesvn.com/thread-41-1-1.html

(Apache的单库多库问题)http://bbs.iusesvn.com/thread-158-1-1.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值