[groups]
project_p = pm
project_s = server1,server2,server3
project_c = client1,client2,client3
project_t = test1,test1,test1
[/]
realwall = rw
@project_p = rw
* =
[/server]
@project_p = rw
@project_s = rw
* =
[/client]
@project_p = rw
@project_c = rw
* =
[/doc]
@project_p = rw
@project_s = r
@project_c = r
@project_t = r
* =
说明:以上信息表示,只有project_p用户组有根目录的读写权。r表示对该目录有读权限,w表示对该目录有写权限,rw表示对该目录有读写权限。最后一行的* =表示,除了上面设置了权限的用户组之外,其他任何人都被禁止访问本目录。这个很重要,一定要加上!
配置authz时,注意svnserve启动参数-r所指定的目录,设repos1版本库路径为/opt/svn/repos1。
a.当-r直接指定某版本库(称为单库svnserve模式),即svnserve -d -r /opt/svn/
这种情况下一个svnserve只能为一个版本库工作,authz配置成
[repos1:/]
user1 = rw
就是错的,而应该是
[/]
user1 = rw
使用类似这样的URL:svn://192.168.0.1/ 即可访问project1。
b.当-r指定到版本库的上级目录(称之为多库svnserve方式),即svnserve -d -r /opt/svn
这种情况,一个svnserve可以为多个版本库工作,这时如果想限制指定库的指定目录,就应该指定具体的库,像这样
[repos1:/]
如果此时你还用[/],则表示所有库的根目录,同理,[/src]表示所有库的根目录下的src目录。
使用类似这样的URL:svn://192.168.0.1/project1 即可访问project1。
此外,对中文目录进行权限控制时,要将权限文件authz改为无BOM的utf-8格式。