您的位置:軟件測(cè)試 > 開(kāi)源軟件測(cè)試 > 開(kāi)源配置管理工具 > cvs
RedHat8.0上CVS服務(wù)器的建立和權(quán)限配置
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/2/18 13:44:58 ] 推薦標(biāo)簽:

  建立和配置操作都是在Redhat Linux8.0上做的。系統(tǒng)帶的CVS可執(zhí)行程序在/usr/bin下面,版本信息為:Concurrent Versions System (CVS) 1.11.2 (client/server)。系統(tǒng)帶的這個(gè)cvs可執(zhí)行程序既可以當(dāng)客戶端使用,也可以用來(lái)建立cvs源代碼庫(kù)服務(wù)器。
  
  建立一個(gè)源代碼庫(kù)主要有以下幾步:
  (1)初始化cvs服務(wù)器環(huán)境。
  #cvs -d/usr/local/source init
  之后進(jìn)入/usr/local/source,可以看到有一個(gè)目錄CVSROOT, 下面是初始化后的CVS服務(wù)器配置文件。暫且保持不動(dòng)。
  (2)把cvs服務(wù)放到x.netd系統(tǒng)服務(wù)中。
  首先在/etc/xinetd.d目錄下生成任務(wù)配置文件cvspserver,文件名稱可以隨便用。
  其中內(nèi)容大致如下:
  service cvspserver
  {
  flags = REUSE
  socket_type = stream
  wait = no
  user = root
  protocol = tcp
  server = /usr/bin/cvs
  server_args = -f --allow-root=/usr/local/source pserver
  disable = no
  }
  其中server_args一個(gè)參數(shù)指定了源代碼庫(kù)路徑,一個(gè)指定了服務(wù)器使用密碼認(rèn)證方式。
  第二,要確認(rèn)/etc/services文件中,有cvspserver關(guān)鍵詞,并分配了端口,如:cvspserver 2401/tcp。
  第三,重新啟動(dòng)xinetd服務(wù),cvs服務(wù)可以用了。
  (3)測(cè)試。假定cvs服務(wù)器在192.168.0.205上,系統(tǒng)上有一個(gè)用戶cvs。登陸另一臺(tái)linxu機(jī)器,執(zhí)行下列命令可以完成測(cè)試:
  $export CVSROOT=:pserver:cvs@192.168.0.205:2401/usr/local/source
  $cvs login
  輸入密碼,沒(méi)有出錯(cuò)提示表示登陸成功。
  
  如果想在一個(gè)linux系統(tǒng)上建多個(gè)源代碼庫(kù),分別提供cvs服務(wù)。重復(fù)上面步驟可以了。
  第一步時(shí)候要注意使用一個(gè)不同路徑。
  第二步放到xinetd系統(tǒng)服務(wù)中稍微麻煩點(diǎn)。/etc/xinetd.d目錄下要生成一個(gè)新的任務(wù)配置文件,例如cvspserver1,文件中service名稱一定要區(qū)分第一個(gè),例如service cvspserver1,server_args做相應(yīng)變動(dòng)。還要在/etc/services文件中,加入新的服務(wù)端口號(hào),例如:cvspserver1 2402/tcp。重新啟動(dòng)xinetd服務(wù).
  第三步測(cè)試時(shí)候,可以這樣設(shè)定:
  $export CVSROOT=:pserver:cvs@192.168.0.205:2402/usr/local/source1
  
  cvs作為并行版本控制系統(tǒng),多用戶讀寫(xiě)是需要的。但有時(shí)候希望有些用戶只能check out,不能提交新代碼。有時(shí)希望cvs上的某些用戶不能check out一些代碼,例如和另一個(gè)開(kāi)發(fā)組共用一個(gè)CVS,希望另一個(gè)組的成員不能check out自己組代碼。
  cvs服務(wù)器有一套自己的用戶認(rèn)證機(jī)制,我使用時(shí)候沒(méi)采用,而是使用了系統(tǒng)上用戶直接作為cvs服務(wù)器用戶,采用linux組、用戶權(quán)限實(shí)現(xiàn)了這樣的功能。
  舉例說(shuō)明,在linxu系統(tǒng)上模擬實(shí)際兩個(gè)開(kāi)發(fā)組a、b,分別有用戶a-user1,a-user2,b-user1,b-user2。
  模塊a-source,希望a組成員都可以讀寫(xiě),b組成員沒(méi)有任何權(quán)限。可以使用以下系列命令:
  #chown -R a-user1 a-source
  #chgrp -R a a-source
  #chmod -R 770 a-source
  如果希望模塊a-source,只有a-user1可以寫(xiě),同組其它用戶可以讀,b組成員沒(méi)有任何權(quán)限,把chmod命令改成-R 750行了。
  必須說(shuō)明的,cvs中默認(rèn)一個(gè)用戶checkout代碼時(shí)候,會(huì)在當(dāng)前模塊下生成一個(gè)鎖文件,如果這個(gè)用戶對(duì)當(dāng)前模塊沒(méi)有寫(xiě)權(quán)限,讀是不可能的。配合上面的權(quán)限設(shè)置,必須改一下cvs服務(wù)器配置。改成不在當(dāng)前模塊目錄下生成鎖文件,把鎖文件集中到一個(gè)所有用戶都有讀寫(xiě)權(quán)限的目錄。修改配置文件CVSROOT/config:
  # Put CVS lock files in this directory rather than directly in the repository. #LockDir=/var/lock/cvs
  把LockDir設(shè)上可以了。

軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd