隨筆 - 6  文章 - 129  trackbacks - 0
          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿(14)

          隨筆檔案(6)

          文章分類(467)

          文章檔案(423)

          相冊

          收藏夾(18)

          JAVA

          搜索

          •  

          積分與排名

          • 積分 - 827222
          • 排名 - 49

          最新評論

          閱讀排行榜

          評論排行榜

          轉:http://www.iteye.com/topic/191883

          CVS是一個很成熟的版本控制系統,它是開源世界的杰作,并且已經成為開源組織使用的標準版本控制系統,在幾乎所有的開源項目中得到應用。

              也正是由于CVS產生和應用于開源世界,使得它在代碼的訪問控制方面存在先天性的不足,在應用于大中型的商業項目的代碼管理中收到一定的限制。因為這類型 的項目通常都需要比較細致的分工,不同的小組分別負責不同模塊的開發,代碼需要比較嚴格的訪問控制,不同的開發人員只能訪問授權的代碼。

              幸運的是,CVS是一個開源的軟件,我們有什么需要的話可以通過修改它的源代碼來實現。CVSACL就是實現訪問控制的CVS補丁。它本身也是一個開源的項目,項目主頁是http://cvsacl.sourceforge.net/index.html 。它提供了對CVS的模塊,目錄和文件以及分支和tag的高級訪問控制。CVSACL定義了8級不同的訪問權限,分別是:

          權限

          關鍵字

          說明

          沒有權限

          n

          用戶不能做任何cvs操作

          讀權限

          r

          可以執行annotate, checkout, diff, export, log, rannotate, rdiff, rlog, status命令

          寫權限

          w

          可以執行commit/checkin命令

          tag

          t

          可以執行tag/rtag命令,依賴讀權限

          創建

          c

          可以執行add import 命令

          刪除

          d

          可以執行rm命令

          全部權限

          a

          可以執行所有cvs命令處理cvsacl管理命令

          管理權限

          p

          可以執行所有命令

          1.  下載CVSACL:

          通過如下網址可以下載到CVSACL相關程序,目前最新版本是cvsacl-1.2.5:

          https://sourceforge.net/project/showfiles.php?group_id=75057&package_id=77484&release_id=423655

          cvsacl-1.2.5-for-cvs-1.11.22.tar.gz

          cvs-1.11.22-cvsacl-1.2.5-patched.tar.gz

          2.  安裝CVSACL:

          安裝方法:cvs-1.11.22-cvsacl-1.2.5-patched.tar.gz

          [root@localhost setup_cvs]# tar -zxvf cvs-1.11.22-cvsacl-1.2.5-patched.tar.gz

          //解壓縮cvs-1.11.22-cvsacl-1.2.5-patched.tar.gz

          [root@localhost setup_cvs]# mv cvs-1.11.22-cvsacl-1.2.5-patched cvs-1.11.22

          //修改cvs-1.11.22-cvsacl-1.2.5-patched目錄名稱為 cvs-1.11.22

          [root@localhost setup_cvs]# cd cvs-1.11.22    //進入cvs-1.11.22

          [root@localhost cvs-1.11.22]# ./configure    //編譯安裝

          [root@localhost cvs-1.11.22]# make

          [root@localhost cvs-1.11.22]# make install

          [root@localhost setup_cvs]# cvs –version    //查看cvs版本

          Concurrent Versions System (CVS) 1.11.22 (client/server)

          with CVSACL Patch 1.2.5 (cvsacl.sourceforge.net)

          注:不需要特意刪除舊版本的CVS。

          3.  CVS服務器的配置:

          (1) 修改配置文件:

          [root@localhost /]# vi /etc/services

          查看是否有:

          cvspserver 2401/tcp #CVS client/server operations
          cvspserver 2401/udp #CVS client/server operations

          注:系統自帶了CVS時,這2行也已經有了,只需要確認一下。如果沒有,請自己加上去。

          (2) 創建CVS啟動腳本:

          [root@localhost /]# vi /etc/xinetd.d/cvspserver

          內容如下:

          service cvspserver
          {
          disable = no
          flags = REUSE
          socket_type = stream
          wait = no
          user = root
          server = /usr/bin/cvs
          server_args = -f --allow-root=/home/cvsroot pserver
          log_on_success += USERID
          log_on_failure += USERID
          }

          注:其中,server指定CVS可執行文件路徑,默認安裝就是/usr/bin/cvs,server_args指定源代碼庫路徑及認證方式等, 例子中把源代碼存放在cvsroot的主目錄中,也可以另外指定路徑,但必須注意權限設置,pserver是密碼認證方式,這種方式的安全性要差一些,但 操作起來比較簡單。請注意每行等號左右都有一個空格,否則無法啟動服務。

          (3) 重新啟動xinetd服務:

          [root@localhost /]# service xinetd restart

          查看是否啟動:[root@localhost /]# netstat -l | grep cvspserver

          屏幕顯示:tcp 0 0 *:cvspserver *:* LISTEN

          說明已經正常啟動,如果沒有請做如下檢查:

          <1>請檢查vi /etc/xinetd.d/cvspserver文件中的server = /usr/bin/cvs路徑和實際執行文件所在位置是否一致;(一般這步驟即可解決該問題)

          <2>請重新檢查配置過程是否有錯誤或者遺漏;

          <3>最后還必須檢查防火墻的設置,把2401端口打開。

          4.  CVSACL權限設置:

          (1) 創建用于CVS的專用系統組和用戶:

          [root@localhost /]# groupadd cvsroot

          [root@localhost /]# useradd –g cvsroot cvsadmin

          (2) 初始化cvs服務器環境:

          [root@localhost /]# cvs -d /cvstest init

          (3) 設置CVS配置庫歸屬及權限:

          [root@localhost /]# chown –R cvsadmin.cvsroot /cvstest

          [root@localhost /]# chmod –R 770 /cvsroot

          (4) 修改CVSROOT/CVSROOT/aclconfig配置文件:

          [root@localhost /]# vi /cvstest/CVSROOT/aclconfig

          UseSystemGroups=yes 行首添加“#”,表示注釋掉。

          UseCVSGroup=yes 去除行首的“#”,表示啟用此句。

          (5) 創建CVS用戶及組:

          [root@localhost /]# cd /cvstest/CVSROOT

          [root@localhost /]# htpasswd –c passwd yueyx

          [root@localhost /]# vi passwd

          yueyx:*******:cvsadmin

          將passwd文件中的所有cvs用戶映射到同一個系統用戶cvsadmin上。

          [root@localhost /]# vi group

          文件格式:

          group1:x:1:yueyx,test1

          用戶之間用 “,”分割。

          注:cvsacl有個bug,必須在組用戶最前邊添加一個不存在的cvs用戶,group文件才會生效。原因不明,但此方法確實管用。

          (6) 使用cvsacl細化權限:

          [root@localhost /]# cvs -d /cvstest racl yueyx:wcd –R Project/doc

          說明:/cvstest:配置庫路徑 yueyx:用戶 wcd:參見本文“CVSACL定義了8級不同的訪問權限”表格。 Project :配置庫中的Module(模塊),doc:Module(模塊)下的目錄


          格式:cvs –d 配置庫位置 racl [用戶||組:權限] [-Rl] [-r tag] [模塊…] [文件…]

          - R 進行目錄遞歸

          - r rev 設定版本/標簽

          - l列出已定義的ACLs權限



          posted on 2011-09-21 15:00 Ke 閱讀(466) 評論(0)  編輯  收藏 所屬分類: cvs
          主站蜘蛛池模板: 肇庆市| 沭阳县| 荆门市| 三河市| 邵武市| 府谷县| 光山县| 克东县| 社旗县| 什邡市| 清河县| 双辽市| 望城县| 平顶山市| 广平县| 东乌珠穆沁旗| 博兴县| 大关县| 阿合奇县| 湘阴县| 泽普县| 唐海县| 甘肃省| 会宁县| 文水县| 克东县| 藁城市| 太保市| 肇东市| 留坝县| 独山县| 齐齐哈尔市| 麦盖提县| 威信县| 额济纳旗| 丹江口市| 河东区| 兴安盟| 扶沟县| 临湘市| 边坝县|