根據本部落格中的cent OS 6.4下的SVN伺服器構建 一文,搭建好SVN伺服器只能管理一個工程,如何做到不同的項目,多個成員的許可權管理分配呢?
一 需求
程式開發伺服器搭建好SVN伺服器,不可能只管理一個工程項目,如何做到不在一個項目中的開發人員不能訪問其它項目中的代碼,做好技術保密工作。
代碼倉庫有三個倉庫:project1,project2,project3
假設人員有6個人:eg1,eg2,eg3,eg4,eg5,eg6
eg1,eg2,只能訪問project1;
eg3,eg4,只能訪問project2;
eg5,eg6,只能訪問project3;
二 實現
在你的倉庫路徑下:假如是/home/sv
cd /home/svn//建立三個代碼倉庫svnadmin create project1svnadmin create project2svnadmin create project3//把兩個許可權設定檔複製到SVN//根路徑下,統一管理所有代碼倉庫cd/projcet1/confcp authz passwd /home/svn//開啟設定檔vi svnserve.conf
修改成如下:
anon-access = none //禁止匿名訪問auth-access = writepassword-db = /home/svn/passwd //統一使用密碼檔案authz-db = /home/svn/authzrealm = project1 //許可權網域名稱,很重要,寫你的工程名
分別修改project2的svnserve.conf
和上面一樣,最後一行分別寫
anon-access = none //禁止匿名訪問auth-access = writepassword-db = /home/svn/passwd //統一使用密碼檔案authz-db = /home/svn/authzrealm = project2 //許可權網域名稱,很重要,寫你的工程名
分別修改project3的svnserve.conf
和上面一樣,最後一行分別寫
anon-access = none //禁止匿名訪問auth-access = writepassword-db = /home/svn/passwd //統一使用密碼檔案authz-db = /home/svn/authzrealm = project3 //許可權網域名稱,很重要,寫你的工程名
修改兩個許可權管理檔案:
passwd
//使用者名稱 = 密碼[users]eg1 = 123eg2 = 123eg3 = 123eg4 = 123eg5 = 123eg6 = 123
authz
[groups] //分組admin = eg1,eg2guest = eg3,eg4guset1 = eg5,eg6[/] //管理者擁有所有讀寫權限* =@admin = rw[project1:/] //工程1的存取控制,guest1,2無法訪問@admin = rw或eg1 = rweg2 = rw[project2:/] @guest = rw或eg3 = rweg4 = rw[project3:/]@guest1 = rw或eg5 = rweg6 = rw
三 重啟
svnserve -d -r /home/svn
停止命令
killall svnserve
實際測試:
各個群組成員只能訪問自己的項目,無許可權查看別人的項目
只有管理員才能查看所有項目工程