詳細的windpws平臺下cvsnt配置與權限分配-_第1頁
詳細的windpws平臺下cvsnt配置與權限分配-_第2頁
詳細的windpws平臺下cvsnt配置與權限分配-_第3頁
詳細的windpws平臺下cvsnt配置與權限分配-_第4頁
詳細的windpws平臺下cvsnt配置與權限分配-_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、詳細的windpws平臺下cvsnt配置與權限分配CVS是目前最常用的版本控制和軟件配置系統(tǒng)。其開源性在其普及的過程中功不可沒,然而正因為開源造成了其易用性較差。往往一個功能需要通過幾個看似不相干的操作配合才能進行。Windows下CVS的多帳戶配置正是這樣一個相當重要的,但很不好操作的功能。幾個難點如下:CVS源自Unix系統(tǒng),其Windows的移植版并沒有服務器功能。在Windows下一般采用安裝CVSNT這個軟件來建立CVS Repository,但CVSNT的操作方法和原始的CVS略微不同。 CVS本身是命令行形式,其配置過程比較繁雜。 CVS的多帳戶配置需要手動修改Repositor

2、y的CVSROOT文件夾里的文件,缺乏統(tǒng)一的界面。在安裝了CVSNT服務器之后,默認的用戶就是建立Repository的Windows 系統(tǒng)的登陸帳戶,但在多人開發(fā)的時候,肯定沒人希望大家都使用同一個名字來Commit;更重要的是,我們可能需要配置開發(fā)人員的權限,例如限制某些人只能看程序,而某些人可以Commit程序,某些人可以添加新的Module。以下是詳細的步驟,環(huán)境是CVSNT 2.5.03 (Build 2151 + TortoiseCVS 1.8.25:1. 使用CVSNT建立一個Repository。假設初始使用Windows的管理員administrator密碼登陸,Reposi

3、tory使用 Pserver協(xié)議,IP是1.2.3.4,端口號是2401,Repository名稱是/TestRep,密碼是123。這時的 administrator 也是此Repository的管理員。2. 為了進行多用戶配置,必須修改Repository的CVSROOT目錄的幾個文件。首先在客戶端將:pserver:administrator1.2.3.4/TestRep設為CVSROOT環(huán)境變量(請注意區(qū)分CVSROOT目錄和 CVSROOT環(huán)境變量。然后用administrator 登陸到CVS,最后Check Out出此CVSROOT目錄。命令如下所示:cvs login /輸入密碼

4、123 cvs co CVSROOT3. 在服務器端為Windows添加一個專門用于CVS操作的Windows帳戶。所有的CVS帳戶都要映射到這個Windows帳戶上進行實際的操作。雖然很多資料并沒有提到需要建立Windows帳戶,但我在實驗中發(fā)現(xiàn)沒有這種帳戶,CVS在后邊執(zhí)行任何操作時都會報告沒有此帳戶的錯誤。假如這個新的帳戶叫做cvsuser。使用Windows命令net user cvsuser cvsuserpassword /Add可以添加此帳戶。在添加完成之后,一定要記得將/TestRep在服務器上的實際文件夾的權限里添加cvsuser的讀寫權限,否則到最后任何映射到cvsuser

5、的CVS帳戶都會因為沒有寫權限無法進行正常的commit操作。首先在服務器上的資源管理器里的“工具”菜單里找到“文件夾選項”,在隨后出現(xiàn)的“查看”選項卡里找到“使用簡單文件夾共享”的項目,取消掉前面的勾,單擊確定。然后右擊/TestRep所在文件夾,單擊“屬性”。在隨后打開的對話框里可以看到“安全”選項卡。我們需要在這里添加cvsuser的讀寫權限。4.為CVS添加自己的帳戶。通過使用命令cvs passwd我們可以添加任意多個CVS 帳戶(當然,只是針對當前的Repository。所有的帳戶信息會被保存在CVSROOT 目錄的passwd 文件當中。然而這個文件是不能Check Out出來的

6、,只能在服務器那里看到它,并且其保存的密碼信息是被加過密的。我們可以添加cvsadmin, user1,user2,anonymous 等用戶。例如添加cvsadmin時的命令是:cvs passwd -a -r cvsuser cvsadmin /輸入cvsadmin的密碼 /再次輸入cvsadmin的密碼這樣就新添了cvsadmin帳戶,并將其映射到Windows帳戶cvsuser上(-a表示添加一個賬戶,-r表示影射到操作系統(tǒng)的帳戶中。我期望將cvsadmin作為以后/TestRep的管理員。這一點十分重要,如果這時候不設置的話,再將CVS改為“僅使用CVS帳戶校驗模式”之后就再也沒有機

7、會添加管理員了(因為只有管理員可以看得到和操作CVSROOT目錄。5.設定cvsadmin為CVS管理員。在客戶端的CVSROOT目錄下新添一個名為admin 的文件。在里面將每一個想要升為管理員的CVS帳戶的帳戶名寫到文件中,每行一個帳戶名。當然admin文件只有放到服務器,cvsadmin的升遷才能生效。但是,僅僅是這么將admin文件提交上去是不能起作用的。在提交它之前,必須將admin的信息添加到checkoutlist文件中。checkoutlist的格式在文件中有介紹,是“空格文件名空格出錯信息回車符”。我們在里面添加一條記錄:admin adminerror特別注意admin前面

8、一定要留一個空格。6.當新的CVS管理員和帳戶信息都準備好后,就要將/TestRep的帳戶校驗模式從“操作系統(tǒng)集成校驗模式”修改為“僅使用CVS帳戶校驗”模式。這么做可以避免為了在CVS中使用多用戶時需要操作Windows帳戶的麻煩。這個設置的地方在CVSROOT目錄中的config文件。打開客戶端的config文件,將里面的#SystemAuth=yes改為SystemAuth=no(注意將#刪除后,SystemAuth前不能有空格。修改后保存config文件。7.提交CVSROOT里的所有更新到服務器,我們的設置就生效了。命令如下所示:cd CVSROOT cvs add -m admin

9、 cvs commit -m 不過在提交之前,你也許想先把CVSROOT的owner從原來的administrator修改為cvsadmin。使用命令cvs chown可以做到這一點。在提交了CVSROOT目錄后,校驗模式就立刻改變了,cvsadmin也同時開始生效。這時,用之前的administrator就無法使用CVS了。我們改用cvsadmin帳戶重新登陸,繼續(xù)下面的操作。8.修改讀寫權限。CVS有兩種讀寫權限的設置方法,一是粗粒度的,一是細粒度的。只有CVS管理員才能進行訪問權限的修改。粗粒度的方法是在 CVSROOT中添加readers或者writers文件來實現(xiàn)。在readers里

10、添加的任何一個帳戶對當前庫只擁有讀取權限,添加格式是每行一個帳戶名。例如,我們在客戶端的CVSROOT目錄里添加readers文件,將之前的一個新建帳戶anonymous放到里面,然后commit這個 readers文件到服務器。anonymous就不能進行commit了。實際的測試結果是在使用anonymous登陸之后執(zhí)行commit指令,系統(tǒng)會報告正常執(zhí)行完畢。但實際上,沒有任何東西被commit,暴露了CVS在人機界面上的不完善。writers文件的操作readers完全一樣。如果一個帳戶名被同時寫到兩個文件里,此帳戶只有只讀權限。細粒度的方法是使用chacl命令。例如/TestRep

11、里有3個工程,project1、 project2、project3。使用命令:cvs chacl -u user1 -a none -d project1,project2,project3 cvs chacl -u user1 -a all -d project1 cvs chacl -u user1 -a read,write -d project2 cvs chacl -u user1 -a read -d project3可以讓user1擁有對project1目錄的完全控制權,對project2目錄的讀寫權,和對project3目錄的只讀權。第一條命令首先刪除user1的所有權限,在

12、隨后的3條命令里分別設置了3個不同目錄權限。9.使用帳戶組來組織帳戶。在客戶端的CVSROOT目錄下添加一個叫group的文件。此文件的格式是:組名1:用戶名1,用戶名2,用戶名3, 組名2:用戶名5,用戶名7, 修改完group文件后commit它,然后通過chacl命令可以實現(xiàn)組權限的修改。-CVS操作手冊 Version 1.1 轉 1 服務器端安裝過程安裝前的注意事項:本操作手冊基于CVSNT 2.5.03 build 2382,操作界面以及選項設置都會隨版本的變化而發(fā)生一定的改變CVS 容器(repository、臨時文件夾(TEMP必須安裝于CVSNT所在服務器 CVSNT 應作為

13、服務,且建議使用SYSTEM賬戶執(zhí)行(原因有兩點:1、SYSTEM不具有網絡權限,也就是說不能被當作遠程服務來使用;2、當SYSTEM賬戶不進行操作的時候,CVSNT服務仍舊在線服務 CVSNT建議被運行在采用NTFS文件系統(tǒng)的服務器上(原因有兩點:1、NTFS文件系統(tǒng)具備CVS所需要的權限管理的基礎;2、NTFS文件系統(tǒng)更加穩(wěn)定且能夠有更大地存儲能力 1.1 CVSNT的安裝與配置 1.1.1 創(chuàng)建CVS容器和臨時文件夾例如:D:CVSNTRepositories (容器 D:CVSTEMP (臨時(請注意:臨時文件夾不可以位于操作系統(tǒng)臨時文件夾內。如:C:winnttemp 或者 C:Do

14、cuments and Settings中 1.1.2 點擊CVSNT 安裝程序含客戶端、服務器端,進行安裝。(請注意:1、如果服務器采用Windows XP、2003或者更高版本則,其WMI Service服務可能會引起權限拒絕錯誤,請在安裝前將其關閉,安裝結束后重新開啟即可;2、注意客戶端與服務器端版本匹配問題;3、安裝后可能需要通過開始-程序-CVSNT-CVSNT Control重新啟動 1.1.3 CVS容器設置點擊Repository對設置變更前,請停止CVSNT、CVSNT Lock服務Panel打開CVS控制面板(或在控制面板中打開configuration選項卡點擊Add新增

15、容器:其中Location欄位填寫/選擇容器所在目錄(在步驟1中創(chuàng)建的;Name欄位填寫容器名稱,必須遵守規(guī)則:必須以“/”開頭,形如“/CVSNTRoot”。(請注意:如果想要新的容器生效,必須勾選Publish RepositoryOnline選項 1.1.4 CVS 臨時文件夾設置點擊Server Settings選項卡,在Temporary中選擇步驟1中創(chuàng)建的CVS臨時文件夾。重新啟動CVSNT、CVSNT Lock服務,如果服務不能啟動,請檢查容器所在文件夾權限設置或重新啟動服務器。 1.1.5 更新CVS服務器中的二進制文件列表(請注意:這是非常重要的,如果不將已知二進制文件類型加

16、入二進制文件列表,當上傳此類文件時文件可能被損壞在命令行提示符下操作: SET CVSROOT=D:CVSNTRepositoriesRepo1(以Administrator登錄服務器,本地操作模式 Cvs co CVSROOT Cd CVSROOT Notepad cvswrappers (在記事本中編輯列表文件例如 *.cab -k b *.class -k b *.doc -k b *.dll -k b *.exe -k b *.exp -k b *.gif -k b *.g z -k b *.jar -k b *.jpg -k b *.jpeg -k b *.lib -k b *.ms

17、i -k b *.mso -k b *.pfw -k b *.png -k b *.ppt -k b *.sit -k b *.tar -k b *.tlb -k b *.vsd -k b *.xls -k b *.wmz -k b *.zip -k b Cvs commit 1.1.6 服務器端CVS權限設置 CVSNT 服務器的權限控制包括兩部分: CVSNT ACL 阻止開發(fā)人員commit錯誤的版本分支NTFS ACL 阻止沒有經過授權的人訪問CVS容器 Windows用戶驗證與CVSNT用戶驗證的混合驗證模式CVSNT登錄方式有兩種: CVSNT用戶驗證的單一驗證模式由于Window

18、s不允許任何非真實帳戶的對文件系統(tǒng)進行操作,所以使用CVSNT創(chuàng)建的用戶其實是Windows用戶的別名(映射,其關系如下圖:本文主要介紹混合模式驗證的設置方法。某容器權限的設置步驟: 1 以Administrator登錄服務器 2 為CVSNT創(chuàng)建Windows用戶組、用戶 Group Name 描述 CVSAdmins 所有的CVS容器管理權,允許更新所有容器中的文件 CVSAdmin-XXX 某容器的管理權 CVSUsers 所有CVS用戶,可以checkout文件,但checkin/commit動作受到CVSROOTwriters 文件控制請注意:如果CVSNT部署于Windows200

19、3+的服務器上,請確認用戶組擁有執(zhí)行CMD.EXE的權限,因為操作系統(tǒng)默認是沒有的 3 設置CVSROOT權限控制文件 CVSROOT filename 描述 Admin 被允許執(zhí)行CVS管理員指令的用戶名單(不受源代碼管理控制 Passwd 記錄CVSNT帳戶名稱和密碼(經過加密,不受源代碼管理控制 Group 記錄CVSNT組信息,格式:組名:用戶名1 用戶名2 用戶名3 Readers 可以讀取數(shù)據的用戶名單 Writers 被允許進行寫操作(commit的用戶名單 config SystemAuth Yes:混合驗證 No:單一驗證某CVSNT容器的配置文檔以Administrator

20、登錄服務器,切換到命令行方式切換到CVS容器所在的文件夾中,例如:D:CVSNTRepositoriesRepo1CVSROOT 設置admin文件通過“echo cvsadmin admin”新建admin文件,“username”與“admin”中間不能有空格設置writers、config文件(不要在CVS容器文件夾中進行 Set CVSROOT=:pserver:cvsadminhost:/Repo1 Cvs login Cvs co cvsroot Cd cvsroot Notepad config Echo username writers (請注意:必須將自己所使用的用戶名也添加

21、進去,否則會被死鎖,若死鎖請到CVS容器中刪除writers與writers.v文件即可 Cvs add writers (當新建此文檔時使用 Cvs commit 4 設置CVSNT容器所在文件夾權限Directory/File SYSTEM Administrators CVSAdmins CVSAdmin-XXX CVSUsers 描述 .CVSNTTEMP Full 開放權限 .CVSNTRepositories Full Full FullRead .CVSNTRepositoriesRepo1 Full Read Full Full 單個容器 .CVSNTRepositoriesR

22、epo1CVSROOT Full Read Full Read 避免普通用戶改變配置文件 .CVSNTRepositoriesRepo1CVSROOThistory Full Read Full Change 記錄CVS用戶歷史 .CVSNTRepositoriesRepo1CVSROOTval-tagsFull Read Full Change CVS用戶checkout 請注意:history文件在CVSNT 2.5.x 版本后發(fā)生了較大的變化,CVSNT不會自動生成歷史記錄,所以容器Repo1中CVSROOT文件夾下沒有history文件需要手動創(chuàng)建一個空的文件并命名為history某容

23、器內項目權限的設置:1 添加CVSNT用戶語法: cvs passwd -a -x -X -r real_user -R -D domain username 其中,-a表示添加一個cvsnt用戶;-x表示取消一個cvsnt 用戶;-X表示刪除一個cvsnt用戶;-r表示把一個cvsnt用戶和一個指定的系統(tǒng)用戶綁定;-R表示取消一個cvsnt用戶和一個系統(tǒng)用戶的綁定;-D表示域; username表示要創(chuàng)建的cvsnt用戶不加參數(shù)表示修改當前登錄用 Chown CVS戶密碼你可以使用以下命令來創(chuàng)建映射關系: cvs passwd -a -r 2 設置CVSNT 用戶權限語法: chown -R

24、 user directory 其中-R 表示遞歸。 cvs chown -R cvsadmin . 上述命令把當前目錄及其子目錄對應的服務器目錄的owner設置為cvsadmin用戶。Chacl CVS chacl -R -r branch -u user -j branch -n -ppriority -m message -a noread|write|create|tag|control, -d file or directory -R表示遞歸; -r branch表示對分支的權限的修改; -a表示設置用戶的權限; -d表示刪除用戶的權限。 cvs chacl -R -u cvsuse

25、r2 -a read,write,create,tag . 上述命令賦予cvsuser2用戶當前目錄及其子目錄對應的服務器目錄的讀/寫/創(chuàng)建/打標簽的權限。 cvs chacl -u g2 -aread,nowrite HelloWorld.java 上述命令賦予g2群組當前目錄下HelloWorld.java文檔的讀權限,拒絕其寫權限。 cvs chacl u cvsuser2 d . 上述命令取消cvsuser2 用戶對當前目錄對應的服務器目錄的所有權限。Lsacl CVS lsacl -dR file or directory -d 表示僅列出目錄權限, -R 表示遞歸。 3 請注意:這

26、里是一個 CVSNT 2.5.03 build 2382 bug 當進入被 cvs checkout 出來的項目客戶端文件夾時,并且這時你并不是使用 checkout 所使用的帳戶登 錄的,cvs 會自動使你變更成為 checkout 時所使 用的帳戶。危害描述:可以借 此漏洞奪得他人帳號控制權,甚至最高管理員權限。解決方法:在使用時請勿在 他人的計算機上使用自己的帳號 checkout 項 目,尤其是管理員帳號。 1.1.7 測試 CVSNT 服務經過以上設置,CVSNT 服務器已經部署完畢,需要對其進 行連接測試,在命令行模式下操作: Set CVSROOT=:pserver:usernamehost:/Repo1 Cvs login 成功則無錯誤提示。 1.2 CopSSH 的安裝與配置在 CVS 應用中為了提升數(shù)據傳輸?shù)陌踩?,可以采?SSH 通訊協(xié)議來替代 pserver 標準協(xié)議,在眾多 SSH 服務程序當中,截 安裝過 程非常簡單,完成后需要Activate a至筆者寫此文章之時,CopSSH 是對各種 客戶端程序支持最好的開源項目。 user,開始程序CopSSH 請注意:CopSSH 要求必須使用 Windows 帳戶,CVSNT 帳戶不被支持??梢酝ㄟ^綁 定 需要從 CVSNT 安裝文件夾中拷貝以下文件到 CopSSH 安裝目錄的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論