posts - 262,  comments - 221,  trackbacks - 0

          【一、測試環境】


           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 閱讀(1861) 評論(1)  編輯  收藏 所屬分類: 其它技術


          FeedBack:
          # re: 【實驗】SVN權限模型配置實驗一例
          2009-02-15 18:25 | 魔方網
          寫的不錯啊,辛苦了!
          http://www.mofun.cc  回復  更多評論
            
          <2008年12月>
          30123456
          78910111213
          14151617181920
          21222324252627
          28293031123
          45678910

          常用鏈接

          留言簿(21)

          隨筆分類

          隨筆檔案

          BlogJava熱點博客

          好友博客

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 嘉善县| 安达市| 遂川县| 新源县| 依安县| 平舆县| 郑州市| 西吉县| 竹溪县| 珲春市| 大方县| 老河口市| 大余县| 兴山县| 峡江县| 密山市| 泊头市| 南涧| 通海县| 措美县| 疏勒县| 扶绥县| 新化县| 桦南县| 普洱| 淳化县| 会同县| 和龙市| 岗巴县| 曲松县| 棋牌| 营山县| 巴彦淖尔市| 墨玉县| 永新县| 习水县| 河源市| 贡觉县| 商南县| 木里| 深泽县|