一 需求
一般來說,公司有多個(gè)項(xiàng)目,在搭建好SVN服務(wù)器之后,就需要使用SVN來實(shí)現(xiàn)不在一個(gè)項(xiàng)目中的開發(fā)人員不能訪問其它項(xiàng)目中的代碼。
假設(shè):
有3個(gè)項(xiàng)目:project1、project2、project3
開發(fā)人員有6個(gè)人:eg1、eg2、eg3、eg4、eg5、eg6
eg1、eg2,只能訪問project1;
eg3、eg4,只能訪問project2;
eg5、eg6,只能訪問project3;
二 實(shí)現(xiàn)
在倉庫根路徑下:假設(shè)是/home/svnroot
cd /home/svnroot
// 創(chuàng)建三個(gè)代碼倉庫
svnadmin create project1
svnadmin create project2
svnadmin create project3
// 把兩個(gè)權(quán)限配置文件復(fù)制到 倉庫根路徑下,統(tǒng)一管理所有代碼倉庫
cd /projcet1/conf
cp authz passwd /home/svnroot
// 打開配置文件
vim svnserve.conf
修改成如下:
anon-access = none # 禁止匿名訪問
auth-access = write
password-db = /home/svn/passwd # 統(tǒng)一使用密碼文件
authz-db = /home/svn/authz
realm = project1 # 權(quán)限域名,很重要,寫你的項(xiàng)目名
分別修改 project2 的 svnserve.conf,和上面一樣,最后一行分別寫
anon-access = none # 禁止匿名訪問
auth-access = write
password-db = /home/svn/passwd # 統(tǒng)一使用密碼文件
authz-db = /home/svn/authz
realm = project2 # 權(quán)限域名,很重要,寫你的項(xiàng)目名
分別修改 project3 的 svnserve.conf,和上面一樣,最后一行分別寫
anon-access = none # 禁止匿名訪問
auth-access = write
password-db = /home/svn/passwd # 統(tǒng)一使用密碼文件
authz-db = /home/svn/authz
realm = project3 # 權(quán)限域名,很重要,寫你的項(xiàng)目名
修改兩個(gè)權(quán)限管理文件:
cd /home/svnroot
vim passwd
// 用戶名 = 密碼
[users]
eg1 = 123456
eg2 = 123456
eg3 = 123456
eg4 = 123456
eg5 = 123456
eg6 = 123456
vim authz
[groups] # 分組
admin = eg1,eg2
guest = eg3,eg4
guset1 = eg5,eg6
[/] # 管理者擁有所有讀寫權(quán)限
@admin = rw
* =
[project1:/] # 項(xiàng)目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/svnroot
// 停止命令
killall svnserve
四 實(shí)際測試
各個(gè)組成員只能訪問自己的項(xiàng)目,無權(quán)限查看別人的項(xiàng)目
只有管理員才能查看所有項(xiàng)目工程
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。