<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 495,comments - 227,trackbacks - 0

    CVS用戶管理是 比較復雜的部分,也是十分重要的部分。通過CVS用戶管理可以創建CVS用戶,并給每個用戶賦予訪問各個目錄的權限。對于使用Pserver登陸的方式, 需要對資源庫的CVSROOT目錄以及在這個目錄樹里的所有目錄做嚴格的權限限制,這是因為 $CVSROOT/CVSROOT 目錄包含 passwd 和其它與安全審核相關的文件,任何對這些目錄具有寫訪問的用戶將有能力成為系統上的任何用戶。

    1 準備知識

    CVSNT 的用戶驗證方式分兩種:Windows系統用戶與CVSNT用戶共存的混合驗證方式,及CVSNT用戶單一驗證方式,默認工作在混合驗證方式下。選用混合 驗證方式,創建CVSNT用戶的過程就是創建Windows用戶的過程,因此當CVS用戶較多的時候,不容易管理,因此推薦使用單一驗證方式。

    各個資源庫所使用的驗證方式及用戶配置由其目錄下CVSROOT里的配置文件決定,其中有幾個比較重要的文件:

    l 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用戶來進行驗證。

    該文件可以在客戶端進行修改,因此我們可以檢出CVSROOT后,將第二行改為SystemAuth=no,并commit到CVSNT上就可以啟用單一驗證方式了,注意啟用單一驗證方式后原來的Windows系統用戶將無法登陸CVS。

    l admin文件

    該文件保存CVSNT管理員用戶列表,內容很簡單,形式如下:

    User1

    User2

    User3

    每 一行定義一個管理員用戶,默認時沒有該文件,但你可以在客戶端自己添加并add上去,再commit到CVSNT上,但是光有這個文件還是不會生效的,還 要將其添加到checklist文件中,使CVSNT能夠讀取該文件的內容,在checklist中添加文件列表的格式為:

    [空格]文件名 出錯信息

    其中文件名前的空格必須要有的,不然會出錯。

    我們可以先添加admin文件到CVSNT中,再修改checklist文件commit,就可以使admin文件生效了。

    l passwd文件

    服 務器工作在CVSNT用戶單一驗證方式下的時候,這個文件定義了CVSNT的用戶信息,這里面保存著用戶名,用戶密碼,以及別名信息。默認狀態下沒有該文 件,但是我們可以在CVSNT還工作在混合驗證方式下時,用系統管理員登錄,通過添加用戶命令來讓CVSNT自動建立一個passwd文件。

    添加用戶的命令的示例:

    cvs passwd –r administrator –a cvsadmin

    之后系統提示輸入密碼,輸入后服務器會新建一個passwd文件。

    該文件的內容很簡單,形式如下:

    cvsadmin:6kj2yopEuCacs:administrator

    wangp:Lm9pr9a1FAl0U

    chu:UnEKuKtsgm242

    以第一行為例:cvsadmin為用戶名,fqr1fS4gDghrt為CVS使用UNIX標準加密函數對密碼進行加密后的結果,administrator為該用戶的別名,當使用混合驗證方式時對應Windows系統用戶名。

    注意:這個文件是不能在客戶端進行修改的,不能checkout出來。

    l group文件

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

    group1:user1 user2 user3

    group2:me you he

    group3:tom jerry

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

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

    2創建用戶
    2.1 設置環境變量

    在命令行創建用戶之前,必須設置兩個環境變量:

    CVSROOT:指向服務器倉庫的目錄;

    Path:指向CVSNT的安裝目錄。

    2.2 利用系統管理員創建CVS用戶

    首先要注意的是,在系統命令行中只有系統管理員可以創建用戶,CVS管理員不能創建用戶或者修改用戶密碼。

    1) 用Administrator用戶取出CVSROOT目錄;

    >cvs co CVSROOT

    2) 在CMD中進入取出的CVSROOT目錄;

    3) 用cvs passwd –r administrator –a CVSAdmin命令建用戶并輸入用戶口令,這里使用administrator用戶為別名,可以使用其它系統中的用戶名建用戶,但由于這些用戶可能不會 被CVSNT使用,因為這些用戶沒有權限在默認的臨時文件夾中寫臨時文件,所以客戶端不能正常工作。如果增加這個用戶的權限,卻帶來安全的隱患,因此建議 用administrator用戶作別名;

    4) 創建windows系統用戶cvsuser,權限為user。

    5) 多次使用cvs passwd –r cvsuser–a username命令創建cvs普通用戶,為每個使用cvs的用戶分配用戶名和密碼;

    6) 在取出的CVSROOT目錄中建一個文本文件:admin,在這個文件中填上Repository的管理員用戶,如:CVSAdmin,并將該文件上傳到服務器上;

    7) 在取出的CVSROOT目錄中修改checkoutlist文件,加入一行admin (注意前后均要有空格,否則可能會出錯),上傳到服務器上,以便CVS服務器能自動通過新建的文件知道管理員賬號;

    8) 在取出的CVSROOT目錄中修改config文件的SystemAuth=no,并去掉前面的注釋符號#,在提交之前要確認一下你上面的修改是否正確,如果提交了這個文件,CVSNT驗證模式就開始生效了,此時,使用Windows系統用戶將無法登錄到CVS。

    2.3 利用CVS管理員創建CVS用戶

    如果安裝了WinCVS軟件,即使修改了config文件,也可利用前面創建的管理員賬號CVSAdmin創建CVS用戶。

    1) 在WinCVS中使用CVS管理員登錄,選中某個目錄后,選擇更改CVSROOT。

    clip_image002

    2) 如果當前目錄的CVSROOT的用戶不是CVSAdmin,則將其改為CVSAdmin。

    clip_image004

    3) 在WinCVS中選擇管理命令行,如下圖所示

    clip_image006

    在彈出的對話框中輸入:

    cvs passwd–a wang

    同樣會提示您設置密碼,創建成功后,會在cvs log欄輸出:

    cvs passwd -a wang

    Adding user wang@132.134.0.88

    ***** CVS exited normally with code 0 *****

    同理可創建其他用戶。也可直接在log輸出界面輸入CVS命令

    4) 查看CVS服務器資源庫中的CVSROOT中的passwd文件,可發現,wang已經加入到passwd文件中,證明創建用戶成功。

    3 配置單個用戶權限

    只有管理員或者被賦予control權限的用戶才有權力對用戶進行權限配置。下面介紹利用上述創建的CVS管理員賬戶CVSAdmin對CVS用戶進行權限配置的具體過程。

    1) 先在WinCVS中以CVSAdmin用戶登錄,并將該文件夾的CVSROOT改為使用CVSAdmin登錄

    2) 由于WinCVS的命令行不支持cvs chacl命令,但是可以直接在WinCVS輸出中輸入chacl命令。當然接下來的操作也可以在系統命令行中完成,在命令行中設定權限需要先進入該文件夾目錄下,在命令行和在WinCVS中的命令格式不盡相同。

    3) 首先介紹在命令行中的格式:

    (a) 輸入“cvs chown CVSAdmin”,宣布該文件夾的擁有者為CVS管理員,這條命令執行后,在該文件夾中的下一層目錄—“CVS”中的“fileattr.xml”已經寫入了這個目錄的屬有者。

    (b) 用“cvs chacl –a noread,nocreate,nowrite,nocontrol”命令給文件夾設定默認訪問權限。

    (c) 用“cvs chacl”命令設定文件夾的訪問權限,“cvs chacl”命令的詳細描述如下:

    cvs chacl [-R] [-r branch] [-u user] [-j branch] [-n] [-p priority] [-m message] [-a [no]{read|write|create|tag|control|all|none}[,...]] [-d] [file or directory...]

    cvs rchacl [-R] [-r branch] [-u user] [-j branch] [-n] [-p priority] [-m message] [-a [no]{read|write|create|tag|control|all|none}[,...]] [-d] [file or directory...]

    如: cvs chacl -R -a read,write -u user1

    現在分別對這幾個參數做一下說明:

    read 讀權限

    write 寫權限

    create 創建目錄的權限

    tag 創建tag權限

    control 控制權限

    all 所有權限

    none 沒有任何權限

    默認情況下,任何用戶都擁有任何目錄的所有權限。

    任何情況下只有目錄的擁有者和或擁有control權限的用戶才有權力更改目錄的使用權限。

    需要說明的是,read|write|create|tag|control 之間沒有權力大小之分。如果有write權限的話,未必有read權限。如你只給某一個用戶寫的權限的話,他是無法讀出的。對于有寫權限的人,一般會給他讀的權限。

    對于create 只有創建目錄的權限,如果目錄下面有文件,你必須還要有write權限才行。

    對于control 如果某用戶對某目錄有control權限,那么這個用戶可以使用“cvs chacl”命令更改這個目錄的權限。

    對于all 如果某個用戶對某個目錄有all權限,那么這個用戶將擁有所有權限。

    對于tag 不需要有wirte權限也可以tag,但應該給其read權限。

    需要說明的是:CVS不僅可以對目錄做權限控制,還能對文件做權限控制。

    4) 在WinCVS中的命令格式如下:

    (a) 同命令行設置方法一樣,輸入“cvs chown CVSAdmin”,宣布該文件夾的擁有者為CVS管理員

    (b) 用“cvs chacl”命令設定文件夾的訪問權限,“cvs chacl”命令的詳細描述如下:

    cvs chacl -R [-r tag] {user|default}:[{[r][w][c]|[n]}] [directory...]

    -R 遞歸到子目錄

    -r 對特殊分支設定權限

    其中權限設置比命令行中可設定的權限少,包括:

    r            (讀取權限)

    w           (寫入權限)

    c            (創建和刪除權限)

    n            (沒有任何權限)

    注:這種方法在WinCVS中未測試成功,報錯信息為:

    cvs [chacl aborted]: server does not support chacl

    通過上述幾個步驟設定好各個用戶的訪問權限后,可用“cvs lsacl”顯示該文件夾的所有用戶訪問權限。或者也可以通過查看服務器端該文件夾目錄下的“CVS”文件夾中的“fileattr.xml”查看。

    4 配置群組用戶權限

    上一小節中所闡述的方法只能一個一個的為單個用戶設定權限,當項目參與人員過多時,使用這種方法難免顯得繁瑣。這種情況可以使用group,位參與人員劃分群組,為每個群組分配相應的用戶權限。其步驟如下:

    1) 在cvsclient端的CVSROOT目錄下,創建group文件,注意該文件沒有擴展名,group文件的格式如下:

    group1:user1 user2

    group2:user3 user4

    group3:user5 user6

    例如一個group文件內容如下:

    manager:zhang

    leader:chu

    developer:wu wang huang zhou wangp

    2) 將該group文件commit到CVS服務器端

    3) 先在WinCVS中以CVSAdmin用戶登錄,并將該文件夾的CVSROOT改為使用CVSAdmin登錄

    4) 在系統命令行中輸入

    cvs chacl [-R] [-r branch] [-u user] [-j branch] [-n] [-p priority] [-m message] [-a [no]{read|write|create|tag|control|all|none}[,...]] [-d] [file or directory...]

    其中[-u user]的user,用group名稱代替,如:

    cvs chacl –R –a write,read,create –u developer

    這樣developer組中的所有用戶都將擁有讀、寫、創建的權限了。

    5 備注/注意事項

    本節介紹的CVS用戶管理的方法大多需要結合WinCVS使用,因此在不用WinCVS的情況下需要注意以下幾點。

    1) 安裝了CVSNT后,需要設定CVSROOT變量,指向CVSNT的資源庫存儲路徑

    2) CVSNT默認采用混合式驗證,所以在命令行可直接進行CVS操作,默認使用系統管理員作為CVS管理員。此時可直接創建用戶,但是此時創建的用戶需要和 系統用戶相關聯,因此有必要創建一個cvsuser的系統user用戶。如果不關聯創建的用戶將無法登錄,使用CVS相關操作。

    3) CVS管理員無法創建用戶,只有系統管理員才能創建用戶。因此只有在建立完了所有的用戶后,才可將config中的SystemAuth改為no,改為 no以后只有CVS用戶才能登錄CVS,系統管理員將無法登錄CVS,也就無法創建CVS用戶。如果碰到此類情況,只有將SystemAuth重新改為 yes。但如果安裝了WinCVS,可結合WinCVS進行用戶創建。

    4) 最后備注一點,在使用WinCVS進行CVS用戶管理的過程中,有非常重要的一步,就是將當前文件的CVSROOT改為CVS管理員,不知道這步在系統命 令行中怎么設定。如果可以在命令行中將當前目錄的CVSROOT設定,那即可在命令行中創建cvs用戶。當前解決方法是在WinCVS中設定。

    posted on 2012-02-22 18:42 SIMONE 閱讀(5318) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 色久悠悠婷婷综合在线亚洲| 久久久久亚洲AV无码专区首| 亚洲gv猛男gv无码男同短文| 亚洲H在线播放在线观看H| 免费无码国产V片在线观看| 热re99久久6国产精品免费| 国产免费av一区二区三区| 亚洲丁香色婷婷综合欲色啪| 久久精品国产亚洲av天美18| 一级毛片免费毛片一级毛片免费| 国产一区二区三区在线观看免费 | 在线看免费观看AV深夜影院| 四虎免费久久影院| 亚洲视频2020| 产传媒61国产免费| 免费电视剧在线观看| 国产亚洲婷婷香蕉久久精品| 亚洲精品9999久久久久无码| 日本免费一区二区三区| 亚洲精品麻豆av| 成人亚洲国产va天堂| 国产AV无码专区亚洲AV男同| 久久久久亚洲Av片无码v| 无码色偷偷亚洲国内自拍| 18禁止看的免费污网站| 国产aⅴ无码专区亚洲av麻豆| 亚洲精品无码少妇30P| 中文字幕视频免费| 国产成人综合亚洲亚洲国产第一页| 精品国产成人亚洲午夜福利| 免费日本一区二区| 亚洲欧洲日产国码一级毛片| 亚洲人成未满十八禁网站 | 日韩中文字幕免费视频| 亚洲成网777777国产精品| 在线亚洲高清揄拍自拍一品区| 亚洲日韩中文字幕无码一区| 免费国产成人α片| 久久亚洲国产精品123区| 亚洲国产aⅴ成人精品无吗| 日韩免费一区二区三区在线播放 |