ApacheSVN服務(wù)器安裝指導(dǎo)手冊(cè)
本節(jié)接著上篇文章介紹ApacheSVN服務(wù)器的安裝問(wèn)題,本節(jié)主要針對(duì)認(rèn)證選項(xiàng)問(wèn)題,這里我發(fā)表一下個(gè)人理解,和大家討論討論,希望對(duì)你有所幫助。
認(rèn)證選項(xiàng)
1、ApacheSVN服務(wù)器基本HTTP認(rèn)證
最簡(jiǎn)單的客戶端認(rèn)證方式是通過(guò)HTTP基本認(rèn)證機(jī)制,簡(jiǎn)單的使用用戶名和密碼來(lái)驗(yàn)證一個(gè)用戶的身份。Apache提供了一個(gè)htpasswd工具來(lái)管理一個(gè)用戶文件,這個(gè)文件包含用戶名和加密后的密碼,這些就是你希望賦予Subversion特別權(quán)限的用戶。htpasswd可以在Apache的bin安裝目錄下找到。具體使用方法如下:
創(chuàng)建用戶文件:htpasswd-cE:\usr\Apache2.2\bin\passwd.confusername
添加新用戶(-m表示以MD5加密密碼,可選項(xiàng)):htpasswd[-m]E:\usr\Apache2.2\bin\passwd.confNewusername
更改用戶密碼:htpasswd[-m]E:\usr\Apache2.2\bin\passwd.confusername
刪除用戶(要用大寫(xiě)的D):htpasswd–DE:\usr\Apache2.2\bin\passwd.confusername
接下來(lái)修改httpd.conf,在Location標(biāo)簽中加入如下內(nèi)容:
- AuthTypeBasic
- AuthName"svnrepos"
- AuthUserFileE:/usr/Apache2.2/bin/passwd.conf
- Requirevalid-user
說(shuō)明:
AuthTypeBasic:?jiǎn)⒂没镜尿?yàn)證,比如用戶名/密碼對(duì)。
AuthName"svnrepos":當(dāng)一個(gè)認(rèn)證對(duì)話框彈出時(shí),出現(xiàn)在認(rèn)證對(duì)話框中的信息。(最好用英文,TortoiseSVN不支持中文,安裝語(yǔ)言包除外。)
AuthUserFileE:/usr/Apache2.2/bin/passwd:指定E:\usr\Apache2.2\bin\passwd為用戶文件,用來(lái)驗(yàn)證用戶的用戶名及密碼。
Requirevalid-user:限定用戶只有輸入正確的用戶名及密碼后才能訪問(wèn)這個(gè)路徑
重新啟動(dòng)Apache,打開(kāi)瀏覽器訪問(wèn)版本庫(kù)。ApacheSVN服務(wù)器的Apache會(huì)提示你輸入用戶名和密碼來(lái)認(rèn)證登陸了,現(xiàn)在只有passwd文件中設(shè)定的用戶才可以訪問(wèn)版本庫(kù)。也可以配置只有特定用戶可以訪問(wèn),替換上述"Requirevalid-user"為"Requireusertonyrobert"將只有用戶文件中的tony和robert可以訪問(wèn)該版本庫(kù)。有的時(shí)候也許不需要這樣嚴(yán)格的訪問(wèn)控制,例如大多數(shù)開(kāi)源項(xiàng)目允許匿名的讀取操作,而只有認(rèn)證用戶才允許寫(xiě)操作。為了實(shí)現(xiàn)更為細(xì)致的權(quán)限認(rèn)證,可以使用Limit和LimitExcept標(biāo)簽。例如:
- <LimitExceptGETPROPFINDOPTIONSREPORT>
- requirevalid-user
- < span>LimitExcept>
以上配置將使匿名用戶有讀取權(quán)限,而限制只有passwd中配置的用戶可以使用寫(xiě)操作。如果這還不能滿足你的要求,你希望精確的控制版本庫(kù)目錄訪問(wèn),可以使用Apache的mod_authz_svn模塊對(duì)每個(gè)目錄進(jìn)行認(rèn)證操作。
2、ApacheSVN服務(wù)器用mod_authz_svn進(jìn)行目錄訪問(wèn)控制
首先需要讓Apache將mod_authz_svn模塊加載進(jìn)來(lái)。在Subversion的安裝目錄中找到mod_auth_svn模塊,將其拷貝到Apache安裝目錄的modules子目錄下。修改httpd.conf文件,添加:
LoadModuleauthz_svn_modulemodules/mod_authz_svn.so
現(xiàn)在可以在Location標(biāo)簽中使用authz的功能了。
【編輯推薦】