CVSNT在Windows下的安裝和使用
文章來源:http://www.xmsc.com.cn/InfoView/Article_117452.html
寫下來備個案。
這裡綜合了網上一些教程的內容和本人的實踐,出處就沒法一一給出了,如有得罪,還請見諒。
本人用的是CVSNT 2.0.51c,用最新的版本在Eclipse中死活不能列出伺服器裡內容,換了這個版本就好了,現在也不知道怎麼回事。
首先安裝,如果是使用安裝包的版本,很簡單,一路NEXT;如果是使用直接解壓的版本,解壓縮後把cvsnt.cpl和setuid.dll複製到%WINROOT%/system32下,並在目前的目錄下執行以下命令註冊CVSNT系統服務:
cvsservice -i
cvslock -i
完成後可以在控制面版裡看到CVS for NT的表徵圖,在裡面先啟動CVS Service和CVS Lock Service,注意如果使用的是解壓的版本,還要在CVSNT目錄下運行一下genkey產生SSL的密鑰:
genkey.exe cvsnt-default.pem
並在SSL settings中選擇一下剛剛產生的密鑰檔案,這個好像沒有SSL登陸就沒用,假設一下,沒用過。
設定Repository,就是CVSNT資產庫的位置,切換到Repositories選項卡,Add添加CVSNT資產庫的位置,此處Location選為E:/CVSNT/Repository,Name是訪問CVSNT伺服器時使用的路徑名,按預設即可,本人是/CVSNT/Repository,如果是建立的目錄,會提示你是否初始化Repository,同意即可。
切換到Advanced,先在Use local users for pserver authentication instead of domain users和Pretend to be a Unix CVS version鉤上,這是讓CVSNT使用本地賬戶作為pserver認證方式以及讓CVSNT伺服器類比為Unix CVS伺服器,
CVSNT伺服器已經配置好了,接下來是我使用過程中遇到問題最多的使用者配置。
先說下CVSNT的使用者驗證方式,CVSNT的使用者驗證方式分兩種:Windows系統使用者與CVSNT使用者共存的混合驗證方式,及CVSNT使用者單一驗證方式,預設工作在混合驗證方式下,當然使用單一驗證方式對使用者的管理肯定比較方便一點,因此下面的配置就是圍繞該方式進行的。各個資產庫所使用的驗證方式及使用者配置由其目錄下CVSROOT裡的設定檔決定,其中有幾個比較重要的檔案。
1、config檔案
控制CVSNT的驗證工作方式的就是config檔案,注意該檔案最前面的兩行:
#Set this to `no' if pserver shouldn't check system users/passwords
#SystemAuth=yes
第二行就是我們要修改的內容,預設狀態是被注釋掉的,SystemAuth有兩個值yes和no:
yes:pserver將使用Windows系統使用者和CVSNT使用者來共同驗證(若CVSNT使用者未定義,則用Windows系統使用者來進行驗證),預設為yes,CVSNT使用者在後面將要介紹的passwd檔案中定義。
no:只使用CVSNT使用者來進行驗證。
該檔案可以在用戶端進行修改,因此我們可以將其checkout出來將第二行改為SystemAuth=no,並commit到CVSNT上就可以啟用單一驗證方式了,注意啟用單一驗證方式後原來的Windows系統使用者將變為無效,因此要注意執行該步驟的時機。
2、 admin檔案
該檔案儲存CVSNT管理使用者列表,內容很簡單,形式如下:
User1
User2
User3
每一行定義一個管理使用者,預設時沒有該檔案,但你可以在用戶端自己添加並add上去,再commit到CVSNT上,但是光有這個檔案還是不會生效的,還要將其添加到checklist檔案中,使CVSNT能夠讀取該檔案的內容,在checklist中添加檔案清單的格式為:
[空格]檔案名稱 出錯資訊
其中檔案名稱前的空格必須要有的,不然會出錯。
我們可以先添加admin檔案到CVSNT中,再修改checklist檔案commit,就可以使admin檔案生效了。
3、passwd檔案
伺服器工作在CVSNT使用者單一驗證方式下的時候,這個檔案定義了CVSNT的使用者資訊,這裡面儲存著使用者名稱,使用者密碼,以及別名資訊。預設狀態下沒有該檔案,但是我們可以在CVSNT還工作在混合驗證方式下時,用系統管理員登入,通過添加使用者命令來讓CVSNT自動建立一個passwd檔案。
添加使用者的命令的樣本:
cvs passwd –r administrator –a cvsadmin
之後系統提示輸入密碼,輸入後伺服器會建立一個passwd檔案。
該檔案的內容很簡單,形式如下:
cvsadmin:fqr1fS4gDghrt:administrator
kid:aTXRfS31Bm6JA
mystique:Yna4QcXz9dEqd
以第一行為例:cvsadmin為使用者名稱,fqr1fS4gDghrt為CVS使用UNIX標準加密函數對密碼進行加密後的結果,administrator為該使用者的別名,當使用混合驗證方式時對應Windows系統使用者名稱。
注意:這個檔案是不能在用戶端進行修改的,不能checkout出來。
4、group檔案
該檔案定義CVSNT中組資訊,同組裡的使用者擁有一樣的許可權,對組許可權的修改和對使用者權限的修改一樣。
group檔案的內容為
administrators:cvsadmin kid mystique
users:User1 User2 User3
可以看到該檔案的內容也很簡單,組名:使用者名稱,多個使用者名稱之間用空格隔開。
Group檔案可以在用戶端修改,不用修改checkoutlist這個檔案,系統會自動使其生效。
作為組裡面的特定成員可以賦給特定的許可權。
瞭解了以上內容,下面我說一下我自己的配置步驟,我沒有使用WinCVS進行操作,是直接使用命令列進行修改的,覺得這樣思路比較清晰:
1、添加系統變數CVSROOT=E:/CVSNT/Repository,並把E:/CVSNT加入到系統Path路徑。
2、進入命令提示字元,因為此時為混合驗證模式,可以不用不用登陸直接進行checkout。可以建立一個工作目錄,在該目錄下進行操作,我這裡為E:/CVSNT/Works。
檢出CVSROOT目錄:
cvs co CVSROOT
3、添加CVSNT系統管理員使用者,此時會提示設定使用者密碼:
cvs passwd –r administrator –a cvsadmin
4、修改CVSROOT存取權限:
cd CVSROOT
cvs chown cvsadmin //更改所有者為cvsadmin
cvs chacl default:n //預設許可權為n
cvs chacl cvsadmin:rwc //添加cvsadmin
5、修改config檔案,按上面的方法修改後commit:
cvs ci
6、此時單一驗證方式已經啟用了,也就是只能使用剛才添加的cvsadmin進行登入,此時可以把CVSNT控制台上的Use local users for pserver authentication instead of domain users關掉。登入前還要改一下系統變數CVSROOT,關閉命令提示字元視窗,修改CVSROOT為:
:pserver:cvsadmin@192.168.0.1:4021/CVSNT/Repository
這裡的192.168.0.1是伺服器的IP地址,/CVSNT/Repository就是前面設定Repository時設定的Name,可以改為你機器上的配置。修改系統變數之後以下的步驟在任何與伺服器相連的機器上進行,當然該機器上應該有CVSNT的可執行檔。
7、如果為了避免出現錯誤,先重啟一下CVSNT伺服器,再啟動命令提示字元來到E:/CVSNT/Works,因為已經啟用單一驗證方式,先要進行登入。
cvs login
輸入密碼,此時就是以cvsadmin登入了。
8、添加admin檔案,首先將CVSROOT檢出,在CVSROOT下建立admin檔案,內容為
cvsadmin
執行命令:
cvs add admin
cvs ci
9、修改checklist檔案,在該檔案末尾添加一行:
[空格]admin error message
注意:admin前的空格不能少。
執行命令:
cvs ci
經過以上步驟,可以說使用者配置已經基本完成了,CVSNT可以很好的工作在單一驗證方式下。進一步的管理可使用以下命令:
添加使用者: cvs passwd -a username,使用時不必理會需要添加別名的提示。
修改使用者權限:cvs chacl username:rwcn,(r:Read w:write c:control n:none)
要添加組管理,只需同添加admin步驟一樣,按照格式要求建立group檔案即可。
如果還有不清楚的可以看看內建的文檔,說得還是比較詳細的。
ok,差不多就是這些,有錯還請各位幫忙指出,還在學習ING