在伺服器端安裝好cvs後,建立一個或多個庫,這樣,在每個庫中自動產生CVSROOT檔案夾,裡面有很多重要的設定檔,有些檔案是自動存在了的(如config,passwd。其中passwd檔案在沒有添加任何使用者時,是不存在的,當用命令添加了一個使用者後,這個檔案便自動產生了),而有些是需要cvs系統管理員手動建立的(如admin,group)。
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使用者來進行驗證。
config檔案不能在伺服器端修改(因為格式為FILE的檔案是無法在CVSNT伺服器端進行編輯儲存的), 但可以將其checkout到用戶端後進行修改,將第二行改為SystemAuth=no,再commit到伺服器CVSNT上,則就可以啟用單一驗證方式了。
注意:啟用單一驗證方式後原來的Windows系統使用者將變為無效,因此要注意執行該步驟的時機。要保證passwd檔案已存在且有使用者了,否則無人可以登陸此庫了,config檔案也checkout不下來了,無法修改回去了。 有一個解決辦法就是,從其他庫的CVSROOT目錄下找一個SystemAuth=yes的config檔案,複製它,覆蓋此庫CVSROOT下的config檔案。
config檔案在建立庫時自動產生 位於CVSROOT目錄下,這裡可以得出結論,對於不同的庫,可以給不同的驗證方式。所以,在每個庫建立的時候要首先設定好這些前提。
2、 admin檔案
設定systemAuth後,在cvsroot目錄下建立admin檔案,這個檔案是儲存CVSNT的管理員列表的檔案,CVSNT根據這個檔案來判斷一個使用者是否是管理員。
有些人喜歡直接在伺服器的CVSROOT目錄下建立admin檔案,這樣,如果你想從伺服器checkout CVSROOT目錄到本機,這個檔案將不會被checkout出來。所以最好的辦法是,從伺服器checkout CVSROOT目錄到本機後,再在本機用戶端的cvsroot目錄下建立一個admin檔案,然後add,再commit到服務端,這樣下次檔案就可以checkout出來了!
在用戶端建立admin檔案:
先進入cvsroot目錄下,再用命令:echo>>admin
該檔案的內容很簡單,形式如下:
User1
User2
User3
每一行定義一個管理 員使用者,預設時沒有該檔案,但你可以在用戶端自己添加並add上去,再commit到CVSNT上,但是光有這個檔案還是不會生效的,還要將其添加到 checklist檔案中,使CVSNT能夠讀取該檔案的內容,在checkoutlist中添加檔案清單的格式為:
[空格]檔案名稱 出錯資訊
其中檔案名稱前的空格必須要有的,不然會出錯。
我們可以先添加admin檔案到CVSNT中,再修改checklist檔案commit,就可以使admin檔案生效了。
Checkoutlist是維護的一個檔案清單,可以放入系統自動build使用者自訂的系統檔案清單,注意:對passwd不生效!!
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出來。
在伺服器端建立了這個檔案以後,就不用再手動進行修改了,當你在用戶端進行密碼或者使用者的增加刪除的時候,系統會自動進行這個檔案的更新。這個檔案是管理著CVSNT系統中的所有的使用者,所以,要特別重視,不瞭解這個檔案格式的,不要去隨便修改,更加不要嘗試在用戶端進行修改
4、group檔案
該檔案用於定義CVSNT中的組資訊,同組裡的使用者擁有一樣的許可權,對組許可權的修改操作和對使用者權限的修改一樣 (即cvs chacl groupname/username:r/w/c/n)。
有些人喜歡直接在伺服器的CVSROOT目錄下建立group,admin檔案,這樣,如果你想從伺服器checkout CVSROOT目錄到本機,這些檔案將不會被checkout出來。所以最好的辦法是在用戶端建立group,admin檔案,然後add,再commit。這樣檔案就可以checkout出來了!
在用戶端建立group檔案:
先進入cvsroot目錄下,再用命令:echo>>group
group檔案的內容為:
administrators:cvsadmin kid mystique
users:User1 User2 User3
可以看到該檔案的內容也很簡單,組名:使用者名稱,多個使用者名稱之間用空格隔開。
Group檔案可以在用戶端修改,不用修改checkoutlist這個檔案,系統會自動使其生效。
作為組裡面的特定成員還可以賦給特定的許可權,許可權分為兩類c,w,r和n(r:Read w:write c:control n:none) ,否定許可權是有高的優先順序的。
5、.perms檔案
該檔案存在於CVS repository中的每一個目錄下。CVSNT通過該檔案來控制使用者對當前檔案夾的許可權。CVS使用者權限:r|w|c|n (r:Read w:write c:control n:none)
例如:
default:n
admin:rwc
user:r
上面檔案中第一行是指當前檔案夾的預設許可權為none(沒有許可權),admin使用者/組的許可權是rwc(讀取、修改、建立),user使用者/組的許可權是r(讀取)。
------------------------------------
瞭解了以上的內容後,接下來 說一下在不使用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 檔案夾路徑”進入此檔案夾,然後對不同使用者的許可權進行修改與控制)
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:r|w|c|n,(r:Read w:write c:control n:none)
要添加組管理,只需同添加admin步驟一樣,按照格式要求建立group檔案即可。