【一、測試環境】
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 閱讀(1858)
評論(1) 編輯 收藏 所屬分類:
其它技術