名師講解 SVN項目和用戶權(quán)限配置
本節(jié)和大家討論一下SVN項目和用戶權(quán)限配置指南,我們在學(xué)習(xí)SVN 的過程中難免會遇到SVN項目和用戶權(quán)限配置問題,這里和大家分享一下,歡迎大家一起來學(xué)習(xí)SVN項目及用戶權(quán)限配置。
SVN項目和用戶權(quán)限配置指南:
一、SVN的兩種使用方式:
1、Apache站點方式;
2、本地命令行方式。
當(dāng)然,我們也可以通過客戶端來進行訪問,但那也必須先建立上述兩種訪問接口。
二、Apache方式的配置
第一種方式我們需要安裝Apache服務(wù)器程序,同時需要安裝兩個模塊:
mod_dav_svn以及mod_authz_svn
他們可以在Subversion的站點上找到,請在附錄中查找鏈接。
將所有需要的模塊安裝之后,我們必須編輯Apache的配置文檔,讓其將我們要用的模塊裝載。一般來說,Apache的配置文件是httpd.conf。位置一般在Apache安裝目錄下的conf子目錄中。而模塊我們一般放在modules子目錄中。我們在配置文件httpd.conf中加入:
LoadModuledav_svn_modulemodules/mod_dav_svn.so
LoadModuleauthz_svn_modulemodules/mod_authz_svn.so這樣,Apache就可以訪問Subversion的倉庫了。
三、Apache方式中項目的發(fā)布
首先還是要先建立SVN項目,例如:
svnadmincreate/home/svn/projectA之后,在httpd.conf文件中加入:
<Location/projectA>
DAVsvn
SVNPath/home/svn/projectA
</Location>
如果是想建立多個SVN項目的話,可以使用另一種寫法:
<Location/svn>
DAVsvn
SVNParentPath/home/svn
</Location>
這樣,凡是在/home/svn目錄下的子目錄,Apache都交給SubversionDAV去處理。用戶即可以通過瀏覽器或者URL訪問Subversion管理的項目了。
四、Apache方式下的權(quán)限管理
我們來看一下SVN項目和用戶權(quán)限配置中Apache方式下的權(quán)限管理。首先,我們來創(chuàng)建一個用戶robert。
由于是第一次創(chuàng)建用戶,我們必須同時創(chuàng)建一個用戶口令文件:htpasswd-cauthfilerobert這時,會提示輸入用戶密碼以及確認用戶密碼。htpasswd程序會將用戶密碼進行散列運算后保存在authfile中。創(chuàng)建第二個用戶時,我們就不必輸入-c開關(guān)了。
htpasswdauthfileharry
如果想要刪除某個用戶,我們可以使用下列指令:
htpasswd-Dauthfileharry
這樣,harry就被從authfile中刪除了。這時,Subversion的權(quán)限管理問題就轉(zhuǎn)化為了Apache的權(quán)限管理問題了。我們將前述的目錄配置做一下修改:
- <Location/projectA>
- DAVsvn
- SVNPath/home/svn/projectA
- AuthTypeBasic
- AuthName"SubversionprojectA"
- AuthUserFile/home/svn/projectA/authfile
- Requirevalid-user
- </Location>
這樣,對projectA訪問就必須提供authfile中記錄的用戶和正確密碼才可以進行了。
五、Apache方式下的分組管理
有時,我們希望能夠?qū)⒍鄠€開發(fā)人員編為一組,使用組的方式來為SVN項目設(shè)定權(quán)限。比如projectA項目只有屬于groupA的成員才可以存取。下面我們來介紹其配置方法。
這里,我們就要用到mod_authz_svn提供的功能了。我們對httpd.conf中的目錄配置再做一次修改:
- <Location/projectA>
- DAVsvn
- SVNParentPath/home/svn/
- AuthzSVNAccessFile/home/svn/authz.conf
- AuthTypeBasic
- AuthName"SubversionprojectA"
- AuthUserFile/home/svn/projectA/authfile
- Requirevalid-user
- </Location>
大家可以注意到,這里使用了另一個配置文件:authz.conf他的大致結(jié)構(gòu)如下:
- [groups]
- everyone=robert,tommy,songjy,zhengyong,orcus,zhangq
- groupA=robert,zhangq
- groupB=orcus,tommy
- [projectA:/]
- @groupA=rw
- @everyone=r
- [projectB:/]
- @everyone=r
- @groupB=rw
Ok,我想大家應(yīng)該已經(jīng)明白了基于組和項目的管理方法了。:)。本節(jié)介紹SVN項目和用戶權(quán)限配置完畢。
【編輯推薦】