【一、测试环境】
A.SVN Repository:C:\peng\Other\newRepo
B.SVN 用户:admin/admin
【二、测试案例1:不同的服务根目录对访问修改URL的影响】
A.测试1:
①运行svnserve -d -r C:\peng\Other\newRepo //指定Repository根目录为服务的根目录
②运行svn://localhost,可以正常访问修改Repository
③运行svn://localhost/newRepo,出现:'svn://localhost/newRepo' non-existent in
B.测试2:
①运行svnserve -d -r C:\peng\Other //指定Repository上层目录为服务的根目录
②运行svn://localhost/newRepo,可以正常访问修改Repository
③运行svn://localhost,出现:Error * No repository found in 'svn://localhost'
C.结论:
①SVN服务启动时指定的根目录不同,会影响相同URL的访问结果
②SVN在访问指定路径时会从服务的根目录下去寻找,即基于我们启动服务时指定的根目录
③svn://localhost指向默认的Repository,svn://localhost/newRepo指向newRepo
④测试情况一的步骤③失败是因为我们已经把路径直接指向了Repository的根目录
⑤测试情况二的步骤③失败是因为我们只是把路径指向了Repository的上层目录
【三、测试案例2:不同用户组下的用户对不同目录的访问修改控制】
A.权限配置
[groups]
#创建基本用户组
group-admin = admin
group-module1 = paul
group-module2 = guang
group-module3 = ben
#把group-module1~3的用户和ben添加到组group-c
group-c = @group-module1, @group-module2, @group-module3,qing
group-java = yu
#把group-c和group-java组的人也添加到group-all
group-all= @group-c,@group-java,qiang
#只有group-admin组的人对/目录可读可写,其它组的用户无权访问修改根目录
[/]
@group-admin = rw
[/trunk]
@group-admin = rw
#所有用户都可以访问修改/trunk/root目录
[/trunk/root]
@group-admin = rw
#只有group-module1~3的用户和group-admin可以访问修改/trunk/root/folder1目录
#其中group-module1~3的权限明确被赋予,group-admin的权限是继承而来
#而group-all = 则表示除了上面授权的用户,其他用户无权读写
[/trunk/root/folder1]
@group-module1 = rw
@group-module2 = rw
@group-module3 = rw
@group-all =
#只有group-c的用户可以读写
[/trunk/root/folder2]
@group-c = rw
@group-all =
#只有group-java的用户可以读写
[/trunk/root/folder3]
@group-java = rw
@group-all =
[/trunk/root/folder4]
@group-c = r
@group-java = rw
qiang = r
[/trunk/root/folder4/folder4_1]
@group-c = rw #权限扩大
@group-java = r #权限收缩
qiang = rw #权限扩大
[/trunk/root/folder4/file4.txt]
@group-c = rw
@group-java = r
qiang = rw
paul = rw #直接赋予RW权限
附:SVN结构图
svn://localhost
|--trunk
|--root
|--folder1
|--file1.txt
|--folder2
|--file2.txt
|--folder3
|--file3.txt
|--folder4
|--file4.txt
|--folder4_1
B.以admin身份访问修改:(属于组group-admin, group-all)
①访问修改svn://localhost/:rw
②访问修改svn://localhost/trunk:rw
③访问修改svn://localhost/trunk/root:rw
④访问修改svn://localhost/trunk/root/folder1:rw
⑤访问修改svn://localhost/trunk/root/folder2:rw
⑥访问修改svn://localhost/trunk/root/folder3:rw
⑦访问修改svn://localhost/trunk/root/folder4:rw
⑧访问修改svn://localhost/trunk/root/folder4_1:rw
⑨访问修改svn://localhost/trunk/root/folder4/file4.txt:rw
【结论】group-admin组用户对任何目录、文件都可读可写。不管子目录权限如何收缩
C.以paul身份访问修改:(属于组group-module1, group-c, group-all)
①访问修改svn://localhost/:rw fail
②访问修改svn://localhost/trunk:rw fail
③访问修改svn://localhost/trunk/root:rw fail
④访问修改svn://localhost/trunk/root/folder1:rw
⑤访问修改svn://localhost/trunk/root/folder2:rw
⑥访问修改svn://localhost/trunk/root/folder3:rw fail
⑦访问修改svn://localhost/trunk/root/folder4:fail to w
⑧访问修改svn://localhost/trunk/root/folder4_1:rw
⑨访问修改svn://localhost/trunk/root/folder4/file4.txt:fail to w
【结论】用户Paul对于权限放大的目录folder4_1可读可写,但对于权限放大的文件file4.txt只可读不可写
D.以qing身份访问修改:(属于组group-c, group-all)
①访问修改svn://localhost/:rw fail
②访问修改svn://localhost/trunk:rw fail
③访问修改svn://localhost/trunk/root:rw fail
④访问修改svn://localhost/trunk/root/folder1:rw fail
⑤访问修改svn://localhost/trunk/root/folder2:rw
⑥访问修改svn://localhost/trunk/root/folder3:rw fail
⑦访问修改svn://localhost/trunk/root/folder4:fail to w
⑧访问修改svn://localhost/trunk/root/folder4_1:rw
⑨访问修改svn://localhost/trunk/root/folder4/file4.txt:fail to w
【结论】用户qing对于权限放大的目录folder4_1可读可写,但对于权限放大的文件file4.txt只可读不可写
E.以yu身份访问修改:(属于组group-java, group-all)
①访问修改svn://localhost/:rw fail
②访问修改svn://localhost/trunk:rw fail
③访问修改svn://localhost/trunk/root:rw fail
④访问修改svn://localhost/trunk/root/folder1:rw fail
⑤访问修改svn://localhost/trunk/root/folder2:rw fail
⑥访问修改svn://localhost/trunk/root/folder3:rw
⑦访问修改svn://localhost/trunk/root/folder4:rw【备注:不包括folder4_1和文件file4.txt】
⑧访问修改svn://localhost/trunk/root/folder4_1:fail to w
⑨访问修改svn://localhost/trunk/root/folder4/file4.txt:fail to w
【结论】用户yu对于权限放大的目录folder4可读写,但不包括那些权限已经被收缩的子目录和文件,对于没有定义的权限则直接继承上层的定义
F.以qiang身份访问修改:(属于组group-all)
①访问修改svn://localhost/:rw fail
②访问修改svn://localhost/trunk:rw fail
③访问修改svn://localhost/trunk/root:rw fail
④访问修改svn://localhost/trunk/root/folder1:rw fail
⑤访问修改svn://localhost/trunk/root/folder2:rw fail
⑥访问修改svn://localhost/trunk/root/folder3:rw fail
⑦访问修改svn://localhost/trunk/root/folder4:fail to w
⑧访问修改svn://localhost/trunk/root/folder4_1:rw
⑨访问修改svn://localhost/trunk/root/folder4/file4.txt:fail to w
【结论】用户qiang对于权限放大的目录folder4_1可读写,但对于权限放大的文件file4.txt只可读不可写(即文件的权限放大不起作用,收目录权限控制)
【四、综合结论】
①权限可以继承,如果对某个目录或文件没有具体定义权限,则默认继承其对父目录的权限
②目录权限可以收缩,父目录的权限为RW,子目录收缩为R后,用户可以对除该目录外的任何其
它可读写目录具有读写权限
③目录权限可以放大,父目录的权限为R,子目录放大为RW后,用户仅可以对该子目录下
(不包括子目录本身)的目录,文件有读写权限。
④文件权限可以直接收缩,父目录的权限为RW,其下文件收缩为R后,用户对该文件的权限仅为
可读
⑤文件权限不能直接放大,父目录的权限为R,其下文件放大为RW后,用户对该文件依然仅有R
权限,没有W权限
-------------------------------------------------------------
生活就像打牌,不是要抓一手好牌,而是要尽力打好一手烂牌。
posted on 2008-12-18 14:13
Paul Lin 阅读(1845)
评论(1) 编辑 收藏 所属分类:
其它技术