在服務器端安裝好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文件即可。
| 不含病毒。www.avast.com |
