Windows下SVN权限配置

Posted excellent-vb

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows下SVN权限配置相关的知识,希望对你有一定的参考价值。

Windows下SVN权限配置  

 
 
     按照前面的教程装完1.6.1版以后,当svnadmin create D;svn创建仓库后,应该在仓库目录下的config目录有3个文件—
authz、passwd、svnserve.conf。
下面对3个文件进行说明:
1、svnserve.conf
 
      svnserve.conf是基础的配置,用于控制访问的权限将[general]前的注释(#)与空格去掉,一定要去掉空格,否则到时客户端登录会出现"Section header must start in the first column的”的告警!亲身体会啊!!最后此文件内容至少包含以下内容:

 

 

 

[general]

anon-access = none

auth-access = write

password-db = passwd

authz-db = authz

 
       其中,anon-access = none禁止匿名登录,auth-access = write为署名登录获得写权限,password-db = passwd指定用户配置文件,authz-db = authz指定权限配置文件
 
2、passwd
 
passwd是用户配置文件,用于设置用户名以及密码
 
格式为:

 

 

 

[users]

用户1 = 密码1

用户2 = 密码2

 

 
     其中用户名,密码不能为中文,至少我设中文登录时提示没有该用户, [users]是必须的。下面列出要访问svn的用户,每个用户一行。
 
示例:

 

 

 

 

[users]

alan = password

king = hello

 

 
这个里面的user表示当前test版本库的成员
 
3、authz
 
authz是详细的用户授权文件
其中 rw 表示读写,  r 表示只读,  *= 禁止所有用户访问,*代表所有用户,权限为空代表没有任何权限
 
格式如下(以下内容转载,感谢原创):
 
  用户组格式:

 

 

 

 

 

[groups]

用户组名 = 用户1,用户2

 

 
  其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。用户必须要在passwd文件里能找到,它是给那个里面的user赋权限.
 
  版本库目录格式:

 

 

 

 

 

 

[/目录]

 @用户组名 = 权限

 用户名= 权限

 

 
  示例:

 

 

  [groups]

  admin = alan

 

 [/]

 @admin = rw

 

 [/svn/p1]

 king = rw(表示king能够读写/svn/p1目录下的所有信息)

 

 [/svn/p1/web]

 zp=r(表示zp能够读/svn/p1/web目录下的所有信息)

 

  
以下是自己的体会:
 
注意:@admin代表整个组,king 在这里只是一个用户
 
关于访问路径[/目录],其完整格式[repos-name:path]或者[path],repos-name是版本库的名字
 
注意:在authz中如果要设定中文文件夹的路径,例如[/测试],请在linux在双击文件用默认记事本打开,然后另存为,注意将编码格式改为UNICODE UTF-8,否则在windows下用TortoiseSVN进行操作时,该中文路径的权限设置会有问题!此乃我的实际测试
 
FAQ:
 
1、路径或权限不足时将出现错误信息提示:
 
http://localhost (路径不对)
Error * PROPFIND request failed on ‘/‘ PROPFIND of ‘/‘: 200 OK (http://localhost)
 
http://localhost/svn (权限不足) 
Error * PROPFIND request failed on ‘/svn‘ PROPFIND of ‘/svn‘: 403 Forbidden (http://localhost)
 
http://localhost/svn/repos (正常显示)
 
http://localhost/repos (权限不允许) 
Error * PROPFIND request failed on ‘/repos‘ PROPFIND of ‘/repos‘: 405 Method Not Allowed (http://localhost)
 
2、不启动E:subversioninsvnserve.exe ,但启动了ApacheSVN ,访问(tortoiseSVN –> Repo – browser)或提交(SVN Commit)情形如下:
 
现象:svn://localhost/svn/repos 不能访问或提交,提示:Error * Can‘t connect to host ‘localhost‘: 由于目标机器积极拒绝,无法连接。 但 file:///e:/svn/repos 和 http://localhost/svn/repos 可以访问或提交。
 
原因:svn:// 是独立服务器 svnserver 自己的协议。file:/// 是本地访问,即服务器端和客户端在一个机器上。

以上是关于Windows下SVN权限配置的主要内容,如果未能解决你的问题,请参考以下文章

Linux 下SVN安全及权限配置

Linux下SVN server 的使用及权限配置

Ubuntu14下安装svn仓库,以及权限配置

SVN的搭建(权限配置篇)

linux下svn怎么配置路径权限

SVN设置用户权限