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