`
hanyoud
  • 浏览: 39840 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

CVS Server安装与配置

阅读更多
CVS是Concurrent Versions System(并行版本系统)的缩写,它是目前比较流行与优秀的版本管理与控制工具,它深受大多数开发人员与系统管理的喜爱,同时也是用来管理其它日常文档(如word工作文档之类)的一个强有力的工具。

一、 CVS服务器的安装

1、基本安装

首先确认系统中是否安装CVS服务:
[root@localhost /]# rpm –qa |grep cvs
cvs-1.11.17-1

如果命令输出类似于上面的输出则说明系统已经安装有cvs,否则就需要从安装光盘中安装cvs的rpm包,或者到http://www.cvshome.org下载。

若未安装,运行rpm –ivh cvs-1.11.17-1.i386.rpm 安装:

[root@localhost /]# rpm –ivh cvs-1.11.17-1.i386.rpm

还可以使用源码包进行编译安装:


[root@localhost src]# tar -xjpvf cvs-1.11.17.tar.tar
[root@localhost src]# cd cvs-1.11.17
[root@localhost cvs-1.11.17]# ./configure --prefix=/usr/share/cvs --disable-server-flow-control
[root@localhost cvs-1.11.17]# make
[root@localhost cvs-1.11.17]# make install


以上指令将CVS安装到/usr/share/cvs这个目录上。

2、在服务器端建立Repository根目录 cvsroot


因为这里涉及到用户对cvsroot里的文件读写的权限问题,所以比较简单的方法是建立一个组,然后再建立一个属于该组的帐户,而且以后有读写权限的用户都要属于该组。假设我们建一个组叫cvs,用户名是cvsroot。建组和用户的命令如下


[root@localhost root]# groupadd cvs
[root@localhost root]# useradd -g cvs -s /sbin/nologin cvsroot
[root@localhost root]# chown -R cvsroot /home/cvsroot


  接下来进行初始化,建立仓库Repository:


 [root@localhost root]# cvs -d /home/cvsroot init


这样在/home/cvsroot目录中就产生了CVSROOT目录,其中存放了一些配置文件,如config等,然后设置权限:


 [root@localhost root]# chown -R cvsroot.cvs /home/cvsroot
 [root@localhost root]# chmod -R ug+rwx /home/cvsroot
 [root@localhost root]# chmod 644 /home/cvsroot/CVSROOT/config


  为了CVS系统的安全,我们要修改/home/cvsroot/CVSROOT/config文件,将"#SystemAuth =no"的前面的注释号#去掉,即改为“SystemAuth =no”(这样,将只有passwd文件里指定的用户才能登录CVS服务器),然后给开发者们逐一建立账号,新建的不要分配用户目录,因为它将作为一个虚拟用户帐号来使用,具体命令如:


 [root@localhost root]# useradd -g cvs -M cyberwh
 [root@localhost root]# passwd cyberwh


  上面的命令就创建了一个并没有Home目录的用户cyberwh,接着将系统的shadow文件复制到CVSROOT, 并重命名为passwd:


 [root@localhost root]# cp /etc/shadow /home/cvsroot/CVSROOT/passwd
 [root@localhost root]# chmod 0644 /home/cvsroot/CVSROOT/passwd


  然后修改passwd文件,将除刚才设定的可使用CVS的用户cyberwh之外的所有行删除,然后去掉每行第二个冒号以后的所有内容,并添上字符串cvsroot, 改为如下格式:


 cyberwh: $1$yh65p/pK$srDuMpEazPhlQOeGsBYN./:cvsroot


  然后,删除掉刚刚在系统中添加的那个用户cyberwh:


 [root@localhost root]# userdel -f cyberwh


这样你的CVS用户就只能用passwd中规定的用户来登陆你的CVS服务器了,要注意的是:本文介绍的添加用户的方法适用于小数量的用户,如果是有大规模的开发人员,推荐采用连接LDAP或者数据库来进行用户的认证服务。


 


3、设置启动CVS服务


在Linux上CVS服务可以通过inetd、xinetd或tcpwrapper等来启动,其中inetd由于安全理由在许多场合已经被xinetd所取代了。这里我们使用xinetd来启动CVS服务。


3.1   在/etc/xinetd.d目录下为CVS服务创建一个配置文件:


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


编辑/etc/xinetd.d/cvspserver,输入如下内容:


  service cvspserver
  {
      disable = no
      socket_type = stream
      wait = no
      user = cvsroot
      env = HOME=
      server = /usr/bin/cvs
      server_args = -f --allow-root=/home/cvsroot pserver
  }


  注:


1)pserver表示是口令认证的访问方式,这是最常用的方式,其他还有gserver,kserver,ext,如果想要更高的安全性可以使用ssh来加密口令和数据流,不过这里为了用户使用的方便,仍然选的是pserver
  2)--allow-root是指定Repository的目录,可以建立多个Repository


 


       3.2  加入cvs服务(如果缺省就有cvs服务,就不用加)


vi /etc/services
cvspserver 2401/tcp #pserver cvs service
cvspserver 2401/udp #pserver cvs service

 


       3.3 重新启动xinetd:


   [root@localhost bin]# /etc/rc.d/init.d/xinetd restart
       Stopping xinetd:  [  OK  ]
       Starting xinetd:  [  OK  ]


重新启动xinetd服务后,CVS服务也开始工作了。


     3.4 检查cvspserver服务是否已经启动


   [root@localhost /]# netstat -lnp|grep 2401
   tcp  0  0  .0.0.0:2401   0.0.0.0:*  LISTEN 1041/xinetd 
   则说明cvs服务器已经运行。

好了,做到这里,CVS的服务器端就已经安装设置好了。


 


二、管理CVS服务器


服务器可以用了,现在大家最关心的就是如何管理服务器,比如,我想让一些人有读和/或写 CVS 仓库的权限,但是不想给它系统权限怎么办呢?


不难,在 cvs 管理员用户(在我这里是 cvsroot 用户)的家目录里有一个 CVSROOT 目录,这个目录里有三个配置文件,passwd, readers, writers,我们可以通过设置这三个文件来配置 CVS 服务器,下面分别介绍这几个文件的作用:


passwd:cvs 用户的用户列表文件,它的格式很象 shadow 文件:


{cvs 用户名}:[加密的口令]:[等效系统用户名]


readers:有 cvs 读权限的用户列表文件。就是一个一维列表。在这个文件中的用户对 cvs只有读权限。


writers:有 cvs 写权限的用户的列表文件。和 readers 一样,是一个一维列表。在这个文件中的用户对 cvs 有写权限。


上面三个文件在缺省安装的时候可能都不存在,需要我们自己创建,好吧,现在还是让我们用一个例子来教学吧。假设我们有下面几个用户需要使用 cvs:


laser, gumpwu, henry, betty, anonymous。


其中 laser 和 gumpwu 是系统用户,而 henry, betty, anonymous 我们都不想给系统用户权限,并且 betty 和 anonymous 都是只读用户,而且 anonymous 更是连口令都没有。


1、 编辑 cvs 管理员家目录里 CVSROOT/passwd 文件(cvsroot用户),加入下面几行:


    laser:$xxefajfka;faffa33:cvsroot
    gumpwu:$ajfaal;323r0ofeeanv:cvsroot
    henry:$fajkdpaieje:cvsroot
    betty:fjkal;ffjieinfn/:cvsroot
    anonymous::cvsroot


注意:上面的第二个字段(分隔符为 :)是密文口令。


密码可以有以下几种方法生成:


1.1  安装步骤2中所述。


1.2


vi /home/cvsroot/passwdgen.pl
文件内容:
#!/usr/bin/perl
srand (time());
my $randletter = "(int (rand (26)) + (int (rand (1) + .5) % 2 ? 65 : 97))";
my $salt = sprintf ("%c%c", eval $randletter, eval $randletter);
my $plaintext = shift;
my $crypttext = crypt ($plaintext, $salt);
print "${crypttext}\n";


如果需要密码为:cyberwh,则敲入:
./passwdgen.pl cyberwh
(注意passwdgen.pl要先设为可执行)
回车即可得到加密密码,用其替换passwd文件中的passwd部分就可以了


1.3 使用htpasswd做加密运算。


htpasswd是Apache的一个工具,如果未安装Apache需先安装。查看Apache是否已经安装:


rpm -q httpd


 


假定建立一个yzx帐号。


htpasswd –n cyberwh


New password:


Re-type new password:


cyberwh:BLoOq1SmcVfbU


 


其中BLoOq1SmcVfbU就是加密后的密码。


在CVSROOT目录下建立一个passwd文本文件,格式如下:


anonymous::cvsroot(不要密码)


cyberwh:BLoOq1SmcVfbU:cvsroot



2、 编辑 readers 文件,加入下面几行:
    anonymous
    betty


3、 编辑 writers 文件,加入下面几行:


    laser
    gumpwu
    henry


注意:writers中的用户不能在readers中,要不然不能上传更新文件。


至于客户端的配置,由于我常使用的IDE如 Eclipse、WSAD都比较容易设置,这里就不再罗嗦。

分享到:
评论

相关推荐

    cvs server安装与Eclipse简单使用

    cvs server安装与Eclipse简单使用 含server安装文件 简单实用说明文档 含有操作截图

    win7系统CVS安装文件及配置过程

    win7系统CVS安装文件及配置过程,里面有cvsnt-server-2.5.05.3489版本的安装文件和详尽的安装过程。

    CVS 服务器与客户端配置指南.doc

    1 CVS下载 1.1 安装 CVSNT 1.2 建立Windows系统账户 1.3 CVS简介 2 CVS服务器端配置 2.1 配置服务器端CVS文件存放位置 2.2 配置Windows Server环境变量 2.3 为CVS添加多用户 2.4 为CVS目录加上用户权限设置等等

    Linux 下配置 CVS服务器CentOS(CentOS 5.2)

    本TXT文件为第五章Linux 下配置 CVS服务器 测试环境:系统 CentOS 5.2 Tomcat版本apache-tomcat-5.5.23 第一步:安装必要组建 第二步:创建用户和用户组 第三步:创建资源库目录 第四步:修改环境...

    Windows7下安装CVS全攻略(TortoiseCVS-1.12.5+ CVSNT+汉化包)

    汉化: 将文件夹zh-CN放到安装目录下的locale下 Windows7下乱码解决方案: 1.卸载安装TortoiseCVS时自动安装的CVSNT. 2.重新安装CVSNT(运行目录下的cvsnt-server-2.5.05.3489.msi文件)。

    MyEclipse使用CVS.doc

    在eclipse中已经内置了CVS client,eclipse的文档中建议将CVS server安装在linux、unix等操作系统上,不过在我们大多数人的开发中,采用CVS server for windows仍然是最方便快捷的方式,尽管它可能比不上linux、...

    cvs资源及教程、解决汉化、中文乱码、常用操作等

    按照上面的步骤安装TortoiseCVS可以解决以下问题以及压缩包包含以下内容: 1.获取文件时有乱码的问题; 2.文件没有显示状态图标的问题; 3.汉化将zh_CN文件夹拖到安装目录TortoiseCVS\locale下 4.cvsNT+tortoise...

    cvs服务器 cvsnt-2.5.03.2260

    CVS是目前最常用的版本控制和软件配置系统。其开源性在其普及的过程中功不可没,然而正因为开源造成了其易用性较差。往往一个功能需要通过几个看似不相干的操作配合才能进行。Windows下CVS的多帐户配置正是这样一个...

    cvs客户端配置及相关问题

    第一步服务器安装,不详细介绍了请参考相关资料吧。 第二步eclipse连接服务器设置。 1。windows-->show view-->other弹出 show view窗口 2。选择cvs-->cvs repositories 3.在cvs repositories窗口中点击右键new-->...

    基于VisualSVN-Server的安装配置,用户自主修改密码,分布式版本库,自动备份等

    平台的VisualSVN-Server文档,包括了安装配置,用户文件管理,用户自主修改密码配置(PHP实现),linkd方式实现多个版本库分布多个硬盘,以及实现定时自动备份,VSS到svn迁移等等,非常详细。 文档结构: 一.安装SVN...

    cvs版本控制环境搭建

    cvsnt安装 ,配置, cvsnt添加cvsnt内部用户,修改记录仓储配置文件实现cvsnt内部账号访问, cvsnt server安装程序,内容详细易懂。 客户端eclipse 内置cvs客户端连接。

    基于 Eclips的 CVS 开发

    一、 建立ECLIPSE与 CVS 服务器的连接 1.打开 CVS Repository 视图(Perspective),可以通过如下菜单操作实现: 【Window】→【Open Perspective】→【Other...】。在出现的对话框中选 择 CVS Repository ...

    CVS 服务器安装及使用简介

    5.2 :pserver:方式远程访问CVS 数据仓库的客户端配置...................................................5 6、使用CVS 进行版本控制..............................................................................

    CVS配置方法.doc

    在CVS_RSH环境变量中,填入你的CVS相关信息 例::pserver:andy:comsenz@192.168.30.88:/home/cvsroot

    cvs服务器环境搭建和用户权限设置

    里面包含了cvsnt安装包,和cvs操作手册,包含所有的内容,只要是个人都能看的懂,此乃我呕心沥血制作成品。绝对的好东西。。。

    windows CVSNT 安装包

    cvs [passwd aborted]: authorization failed: server 127.0.0.1 rejected access to /tarena/cvs for user administrator 这条命令后就可以设置这个用户的密码。 成功后可以使用这个用户了 在Myeclipse中连接...

    CVSNT-2.5.01

    set cvsroot=:pserver:qab@server/CVS(qab是刚才建立的用户名,server是安装的计算机名称,/CVS 是刚才建立的文件夹别名) cvs login 密码为空 这时会登录成功 改密码 cvs passwd 这时会看到passwd文件中的内容...

    Eclipse快速上手指南之使用CVS

    首先我们要正确安装并配置好CVS服务器,通常LinuxServer都自带CVS服务,不过命令行操作比较繁琐。Windows下也有简单易用的CVS服务器,这里我们推荐CVSNT,可以下载CVSNT2.0.51a,安装并启动CVSNT:然后切换到...

    论坛教程帖:LINUX下CVS服务器的配置

    我现在只是把CVS安装成功,但环境配置老是出错 CVS INIT老是提示: name or server cann't find 请各位帮帮小女子,不胜感激!! 首先设置CVSROOT环境变量 比如你的自己用用的话:在~/.profile中加入set ...

Global site tag (gtag.js) - Google Analytics