假設(shè)有用戶1:lxw ;用戶2:zxh
有用戶1的模塊::lxwdir;用戶2的模塊:zxhdir
要求 lxw 只能訪問lxwdir;zxh只能訪問zxhdir
第1步,設(shè)置CVS的庫配置文件(模塊CVSROOT)的訪問權(quán)限
方法:建立超級用戶的工作目錄 WINCVSADMIN
?????? a.以cvsnt服務(wù)器超級用戶administrtor 登陸 wincvs
?????? b.CHECKOUT 庫控制文件 checkout moudel 'cvsroot',此目錄下的文件為CVS的高級配置文件,可以在本地進行修改,提交,本身在版本控制之中
?????? c.修改CVSRoot的訪問權(quán)限,在命令行輸入如下命令??#之后為說明,不需要輸入 每行命令要單獨執(zhí)行,這是4條命令
???????? cvs chacl default:n??????????#取消所有用戶的默認(rèn)權(quán)限
???????? cvs chacl administrator:rcw??#設(shè)置Administrator擁有所有權(quán)限 讀取;創(chuàng)建和刪除;寫入
???????? cvs chown administrator??????#更改的擁有者Administrator
???????? cvs lsacl???? ? ? ? ??????? #察看權(quán)限的設(shè)置情況
第2步,建立CVS的用戶
?????? 正常可以用WINNT 系統(tǒng)的用戶作為CVS 的用戶,訪問CVS ,但是這種方式安全性太差
?????? 可以建立CVS 自己的用戶
?????? a.建立WINNT系統(tǒng)用戶 CVSUSER,權(quán)限設(shè)為一般用戶就可以,只要能訪問WINNT就可以
?????? b.建立密碼文件PASSWD,
?????????? 直接在服務(wù)端 CVSROOT 目錄下建立文件就可以 PASSWD
?????????? 出于安全考慮,不要將 passwd列在 checkoutlist 文件里面。
?????? C.建立CVS用戶
??????????在WINCVS 命令行下輸入命令
??????????cvs passwd -a -r cvsuser zxh???????? #建立ZXH用戶與系統(tǒng)用戶cvsuser有一樣的權(quán)限,回車后提示輸入兩次口令
??????????cvs passwd -a -r cvsuser lxw???????? #建立lxw用戶與系統(tǒng)用戶cvsuser有一樣的權(quán)限,回車后提示輸入兩次口令
??????????cvs passwd -a -r administratro administrator #建立administrator用戶與系統(tǒng)用戶administrator有一樣的權(quán)限,回車后提示輸入兩次口令
??????????可以看到PASSWD 文件多了兩行
??????????zxh:CUXQwLMdoZHNs:cvsuser???? #中間為加密的密碼,密碼使用Unix標(biāo)準(zhǔn)的crypt()函數(shù)加密
??????????lxw:ZTUCMKUkZ6ap2:cvsuser????
??????????administrator:oN2Stm4NIf31Q:administrator
第3步, 使用CVS用戶登陸
?????? 由于CVS 在默認(rèn)模式下,是采用系統(tǒng)用戶登陸的,這就要修改配置文件 CONFIG
?????? 設(shè)置文件CONFIG為修改狀態(tài)
?????? 加入如下一行
?????? SystemAuth=no??#yes 默認(rèn)值,表示 如果用戶在PASSWD文件中不存在,就用系統(tǒng)用戶檢查權(quán)限是否正確
??????????????????????#no?? 表示用PASSWD檢查用戶密碼權(quán)限是否正確
?????? 之后提交
?????? (在設(shè)置CONFIG 文件SystemAuth=no??之后
????????需要在cvs 控制目錄cvsroot\ 下建立admin文件??
????????這個文件是指定CVSNT的管理員列表的文件,CVSNT根據(jù)這個文件來判斷一個用戶是否是管理員。文件的內(nèi)容很是一個用戶列表。如下:
user1
??user2
??user3
這些代表user1,user2,user3都是管理員 ;
在此之前 cvs將服務(wù)器的管理員用戶作為自己的管理員用戶的)
第4步,加入文件 WRITERS ,READERS?? 控制用戶的讀寫權(quán)限
??????在cvsroot目錄下加入兩個文本文件,WRITERS ,READERS
??????其每行內(nèi)容為??用戶名 回車
??????只有加入WRITERS中的用戶才能進行提交
??????加入READERS中的用戶只能讀取
??????同時在兩個文件中的用戶只能讀取
??????在writers文件中加入如下
??????????zxh
??????????lxw??
??????????administrator??????
第5步,? ? 配置CVS庫模塊文件——modules
?????? a.將MODUES文件設(shè)為可編輯狀態(tài)
?????? b.在MOUDES 加入如下3行
???????? CVSRoot????????????CVSRoot
???????? 大狼的工作目錄 -a??lxwDIR
???????? 開心的工作目錄 -a??ZXHDIR
?????? c.保存,提交 COMMIT
第6步, 為2個用戶分別上傳工作目錄
?????? 選中LXW的工作目錄'LXWDIR'?????? IMPORT MODULE??
?????? 選中ZXH的工作目錄'ZXHDIR'?????? IMPORT MODULE??????????
?????? 注意:上傳的目錄不能為空目錄,其下必須有文件(啥文件都行)
?????? 上傳成功后,刪除這2個目錄OR 改名
(補充一下分組的使用方法:
分組:將權(quán)限相同的用戶劃分到一組,這樣方便維護。就是角色的意思,分組使用在對模塊訪問權(quán)限的劃分。
方法:
a.在服務(wù)器端 cvsroot 目錄下新建文件 group
b.建立分組 group1,group2 ,group文件內(nèi)容如下
group1:user1 user2 user3
??group2:user5 user6 user7
c.之后對組進行權(quán)限劃分,和對單個用戶方式一樣,就可以使組內(nèi)用戶和組具有相同的權(quán)限,如 選中模塊,執(zhí)行如下命令
?? chacl -R default:n
??????cvs chacl -R group1:rcw
??????cvs lsacl??
可以使,用戶 user1 user2 user3 同時具有對該模塊的讀寫和控制的權(quán)限
第7步,下載目錄目到本地做權(quán)限設(shè)置 CHECKOUT MODULE
?????? CHECKOUT MODULE????????選擇 大狼的工作目錄??'LXWDIR'
?????? CHECKOUT MODULE????????選擇 開心的工作目錄??'ZXHDIR'
????做法是這樣的
??????選擇 菜單\remote\checkou moudule
????????????在打開窗口中 點擊‘...’ 按鈕
??????在打開窗口中選擇 大狼的工作目錄
??????ok 按鈕
??????確定 按鈕
第8步 分別設(shè)置2用戶(LXW;ZXH)對各自目錄的訪問權(quán)限
??????選中模塊 LXW ,在命令行輸入如下3條命令,
??????cvs chacl -R default:n
??????cvs chacl -R LXW:rcw
??????cvs lsacl
??????選中模塊 ZXH ,在命令行輸入如下3條命令,
??????cvs chacl -R default:n
??????cvs chacl -R ZXH:rcw
??????cvs lsacl
說明 加 ‘-R ’參數(shù)表示對模塊的權(quán)限是遞歸的。解釋一下:
如目錄結(jié)構(gòu)?? dira
?????????????????????????????? |---dira1
?????????????????????????????? |---dira2
命令:cvs chacl default:n 只對 目錄 dira 有效,而對子目錄無效
??????cvs chacl -R default:n????對目錄dira及其下子目錄都有效
??????????????????????????????
第9步 已經(jīng)完成了設(shè)置??
??????以用戶 LXW OR ZXH 登陸WINCVS 就只能CHECKOU 各自的模塊 LXWDIR,ZXHDIR??
??????進行相應(yīng)的開發(fā)工作了
在執(zhí)行命令cvs passwd -a -r cvsuser zxh???????? 的時候
在本地目錄 CVSROOT 目錄下的PASSWD文件里沒有生成相關(guān)的用戶和密碼
而在服務(wù)器 CVSROOT 目錄下的PASSWD文件里生成了相關(guān)的用戶和密碼
如果是這樣,是一種正常現(xiàn)象
原因是你沒有把passwd 控制文件加入到 cvs版本 控制之中—文件checkoutlist里