根據本文中的CentOS 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 project1
svnadmin create project2
svnadmin create project3
//把兩個權限配置檔案複制到SVN
//根路徑下,統一管理所有代碼倉庫
cd/projcet1/conf
cp authz passwd /home/svn
//打開配置檔案
vi svnserve.conf
修改成如下:
anon-access = none //禁止匿名通路
auth-access = write
password-db = /home/svn/passwd //統一使用密碼檔案
authz-db = /home/svn/authz
realm = project1 //權限域名,很重要,寫你的工程名
分别修改project2的svnserve.conf
和上面一樣,最後一行分别寫
anon-access = none //禁止匿名通路
auth-access = write
password-db = /home/svn/passwd //統一使用密碼檔案
authz-db = /home/svn/authz
realm = project2 //權限域名,很重要,寫你的工程名
分别修改project3的svnserve.conf
和上面一樣,最後一行分别寫
anon-access = none //禁止匿名通路
auth-access = write
password-db = /home/svn/passwd //統一使用密碼檔案
authz-db = /home/svn/authz
realm = project3 //權限域名,很重要,寫你的工程名
修改兩個權限管理檔案:
passwd
//使用者名 = 密碼
[users]
eg1 = 123
eg2 = 123
eg3 = 123
eg4 = 123
eg5 = 123
eg6 = 123
authz
[groups] //分組
admin = eg1,eg2
guest = eg3,eg4
guset1 = eg5,eg6
[/] //管理者擁有所有讀寫權限
* =
@admin = rw
[project1:/] //工程1的通路控制,guest1,2無法通路
@admin = rw
或
eg1 = rw
eg2 = rw
[project2:/]
@guest = rw
或
eg3 = rw
eg4 = rw
[project3:/]
@guest1 = rw
或
eg5 = rw
eg6 = rw
三 重新開機
svnserve -d -r /home/svn
停止指令
killall svnserve
實際測試:
各個組成員隻能通路自己的項目,無權限檢視别人的項目
隻有管理者才能檢視所有項目工程
推薦閱讀:
