CVSNT用戶管理方案

CVSNT用戶管理方案<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

所有這些操作基於的環境和軟件版本:WINDOWS2000 ProCVSNT2.0.4WinCVS1.3.9.1Beta9

              在前面的介紹CVSNT配合WinCVS進行用戶管理的文章中,已經對CVSNT的用戶管理,權限分配進行了比較詳細的敘述,但是還有一些概念沒有交待清楚,在這裏,我會根據項目的實際需要,以及自己的一些經驗給出一套用戶管理、權限管理方案,在看這篇文章之前你最好已經閱讀了前面的一篇文章,對用戶的增加刪除,權限的修改,等等這些操作能夠了解,否則,會有一點困難。

 

1、               CVSNT的用戶驗證方式

我們這裏所討論的是工作在pserver方式下。

CVSNT的文檔中給出了兩種驗證方式,我總結了一下,可以這樣稱呼:WindowCVSNT混合驗證方式,CVSNT獨立驗證方式。在前面的文章中,我們沒有詳細的給出這兩種方式的內容,所講述的啓示就是混合驗證方式。

決定CVSNT工作於何種驗證方式是由CVS的管理文件來決定的,這些管理文件處在庫的目錄下的CVSROOT目錄中,這裏可以得出結論,對於不同的庫,可以給不同的驗證方式。所以,在每個庫建立的時候要首先設定好這些前提。

下面的操作如果沒有特殊指出則都是在客戶端來進行管理的,下面首先是對一些控制原理和相關的文件做一些說明,如果你正在進行相關的模擬操作,請停下來暫時停止你的操作,因爲這些操作的步驟是有先後的,如果你順序不對,那麼你可能就權限失效,進行不了下面的操作了。

 

11 config文件

在庫建立好了以後,你還沒有對控制文件進行修改之前,CVSNT是工作在混合驗證方式之下的,這個時候,CVS服務器的管理員就是CVSNT的管理員,你以一個管理員身份登陸,檢出你要操作的庫的CVSROOT模塊,看一下文件列表,控制CVSNT的驗證工作方式的是config文件,你可以在文件列表中找到它,雙擊看看其中的內容,這裏對我們最重要的就是第一個設置內容,你會看到下面的內容:

# Set this to `no' if pserver shouldn't check system users/passwords

#SystemAuth=yes

第二行就是我們要修改的內容,默認狀態是被註釋掉的,SystemAuth有兩個值yesno

yespserver將使用系統用戶數據庫和passwd文件(這個文件後面會詳細講述)來共同驗證(若passwd文件不存在或者文件中沒有相應的資料,則用系統用戶來進行驗證)默認爲yes

no:所有的用戶必須在passwd中存在,根據passwd的內容來進行用戶的驗證。

我這裏所闡述的方案就是工作在no的下面的,修改完之後提交到服務器,提交完畢服務器就處在CVSNT的獨立驗證模式下了。在這個工作方式下,NT本地的用戶和CVSNT用戶沒有任何本質的聯繫和影響(僅僅是要建立一個別名)。

 

12  passwd文件

              在講述上面的時候提到了這個文件,在服務器工作在CVSNT驗證模式下的時候,這個文件就可以稱之爲CVSNT的用戶數據庫,這個裏面存儲着用戶列表,用戶的密碼,以及別名的一些信息。默認狀態下這個文件是不存在的,所以,如果我們要在CVSNT驗證模式下工作,必須建立這個文件。注意:這個文件是不能夠在客戶端進行修改的。這個文件的內容是相當簡單的,就像下面:

              這裏分別拿第一個用戶bach和第三個用戶melissa來進行說明,每一行代表一個用戶,總共有三部分信息,用戶名、密碼、本地用戶三部分之間使用冒號“:”來進行分割。

              用戶名:就是登陸CVS的用戶名

                碼:用戶的密碼,這裏是經過加密的,如果爲空,那麼就是空密碼

              本地用戶:CVS用戶這個別名對應的本地用戶,(跟本地用戶沒有任何其他關係,僅僅是別名的關係)

              如果在本地系統中存在一個用戶名bash,那麼要在CVS建立一個bach這樣的用戶就不需要在後面指出對應的系統用戶,melissa後面的pubcvs就是系統用戶,在本地系統上面存在的用戶。對於要用命令增加這兩種用戶的格式如下:

cvs passwd –a bach

cvs passwd –r pubcvs –a melissa

              在庫建立的時候可以在服務器上建立一個簡單的passwd初始化文件,加一行

              cvsadmin:

              這樣,就給出了一個cvsadmin這個空密碼用戶(本地系統中有這樣的用戶,就可以不加到後面去),然後在客戶端來進行修改和以後的用戶增加工作。注意:在客戶端進行其他之前請先首先修改這個密碼,以防止別人進行破壞。

              在服務器端建立了這個文件以後,就不用再手動進行修改了,當你在客戶端進行密碼或者用戶的增加刪除的時候,系統會自動進行這個文件的更新。這個文件是管理着CVSNT系統中的所有的用戶,所以,要特別重視,不瞭解這個文件格式的,不要去隨便修改,更加不要嘗試在客戶端進行修改!

13  admin文件

              這個文件是指定CVSNT的管理員列表的文件,CVSNT會根據這個文件中的內容來判斷一個用戶是否是管理員。這個文件的內容很簡單,是一個用戶列表。類似下面

user1

user2

user3

這些代表user1,user2,user3都是管理員,當然,這些用戶必須要存在才能夠正確登陸系統來執行管理。

              這個文件默認狀態下是沒有的,但是,可以在客戶端進行添加,在你的客戶端進行新建這個文件然後add上去再commit一下,這個文件就可以上傳到服務器,但是這個時候還沒有生效,請修改checkoutlist這個文件,加入admin這一行,checkoutlist也可以在客戶端進行修改再提交,這個時候admin就可以被系統自動的build了。

              Checkoutlist是維護的一個文件列表,可以放入系統自動build的用戶自定義的系統文件列表,注意:對passwd沒有用!!

             

14  group文件

              這個文件是定義系統的組,我們可以將同樣性質的用戶歸入一個組,然後用給用戶賦權限的方式給組賦權限,這樣,一個組的用戶就會具有同樣的權限。Group的內容如下:

group1:user1 user2 user3

group2:me you he

group3:tom honey

有上面可以看出來,這個文件的內容也是相當的簡單,首先是組的名稱然後是冒號,接着是用戶名,多個用戶名之間用空格來進行分割。

              Group文件可以在客戶端進行新建和修改,不用修改checkoutlist這個文件,系統會自動build這個文件並且使之生效。

              作爲組裏面的特定成員還可以賦給特定的權限,權限分爲兩類c,w,rn,否定權限是有高的優先級的。

 

              好,上面已經介紹了本方案所涉及到的幾個重要的文件以及修改方式。這裏再強調一下,passwd只能夠再服務器端進行建立和修改,不能夠在客戶端進行操作!

              現在根據上面介紹的內容,可以開始你的操作了,下面給出修改順序,庫剛剛建立起來的時候,使用一個服務器上的本地管理員用戶進行登陸檢出CVSROOT模塊。

1、 現在服務器端加上passwd文件,給一個初始的用戶,比如cvsadmin:

2、 在客戶端增加admin,將cvsadmin加入admin文件,作爲出是管理員,並提交加入到庫中。

3、 在修改checkoutlist文件,加入admin,使其能夠自動build

4、 最後修改config文件的SystemAuth=no,在提交之前要確認一下你上面的修改是否正確,如果提交了這個文件,CVSNT驗證模式就開始生效了!

5、 好,現在請修改你的參數再重新進行的登陸吧。因爲你的系統已經切換了工作模式,你當前的用戶已經失效了。

完成了上面的步驟,整個服務器就會有效的工作在CVSNT驗證模式下了。而group文件在你需要的任何時候可以加入。

 

 

 

 

 

2003年12月5日 12:08

- 作者: sokovor 2004年06月23日,星期三 14:46:07

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章