会员控制台 会员登陆 会员注册 最后更新 高级搜索 会员投稿 退出登陆
设为首页
收藏本站
留言给我
  首页 | 操作系统类 | 程序设计类 | 数据库类 | 应用服务类 | 网络及硬件类 | 其他技术 | GBunix论坛
操作系统类
程序设计类
数据库类
应用服务类
网络及硬件类
其他技术
Unix中文 / 应用服务类 / 其他应用 / CVS服务器建立和权限配置
CVS服务器建立和权限配置
2004-08-14    hait    www.chinaunix.net    点击:
CVS服务器建立和权限配置
我三天的工作结果,和大家分享

建立和配置操作都是在Redhat Linux8.0上做的。系统带的CVS可执行程序在/usr/bin下面,版本信息为:Concurrent Versions System (CVS) 1.11.2 (client/server)。系统带的这个cvs可执行程序既可以当客户端使用,也可以用来建立cvs源代码库服务器。

建立一个源代码库主要有以下几步:

(1)初始化cvs服务器环境。

#cvs -d/usr/local/source init

之后进入/usr/local/source,可以看到有一个目录CVSROOT, 下面是初始化后的CVS服务器配置文件。暂且保持不动。

(2)把cvs服务放到xinetd系统服务中。

首先在/etc/xinetd.d目录下生成任务配置文件cvspserver,文件名称可以随便用。

其中内容大致如下:

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一个参数指定了源代码库路径,一个指定了服务器使用密码认证方式。

第二,要确认/etc/services文件中,有cvspserver关键词,并分配了端口,如:cvspserver 2401/tcp。

第三,重新启动xinetd服务,cvs服务就可以用了。

(3)测试。假定cvs服务器在192.168.0.205上,系统上有一个用户cvs。登陆另一台linxu机器,执行下列命令可以完成测试:

$export CVSROOT=:pserver:cvs@192.168.0.205:2401/usr/local/source
$cvs login

输入密码,没有出错提示表示登陆成功。

如果想在一个linux系统上建多个源代码库,分别提供cvs服务。重复上面步骤就可以了。

第一步时候要注意使用一个不同路径。

第二步放到xinetd系统服务中稍微麻烦点。/etc/xinetd.d目录下要生成一个新的任务配置文件,例如cvspserver1,文件中service名称一定要区分第一个,例如service cvspserver1,server_args做相应变动。还要在/etc/services文件中,加入新的服务端口号,例如:cvspserver1 2402/tcp。重新启动xinetd服务.
第三步测试时候,可以这样设定:

$export CVSROOT=:pserver:cvs@192.168.0.205:2402/usr/local/source1

cvs作为并行版本控制系统,多用户读写是需要的。但有时候希望有些用户只能check out,不能提交新代码。有时希望cvs上的某些用户不能check out一些代码,例如和另一个开发组共用一个CVS,希望另一个组的成员不能check out自己组代码。

cvs服务器有一套自己的用户认证机制,我使用时候没采用,而是使用了系统上用户直接作为cvs服务器用户,采用linux组、用户权限实现了这样的功能。

举例说明,在linxu系统上模拟实际两个开发组a、b,分别有用户a-user1,a-user2,b-user1,b-user2。

模块a-source,希望a组成员都可以读写,b组成员没有任何权限。可以使用以下系列命令:

#chown -R a-user1 a-source
#chgrp -R a a-source
#chmod -R 770 a-source

如果希望模块a-source,只有a-user1可以写,同组其它用户可以读,b组成员没有任何权限,把chmod命令改成-R 750就行了。

必须说明的,cvs中默认一个用户checkout代码时候,会在当前模块下生成一个锁文件,如果这个用户对当前模块没有写权限,读是不可能的。配合上面的权限设置,必须改一下cvs服务器配置。改成不在当前模块目录下生成锁文件,把锁文件集中到一个所有用户都有读写权限的目录。修改配置文件CVSROOT/config:

# Put CVS lock files in this directory rather than directly in the repository.
#LockDir=/var/lock/cvs

把LockDir设上就可以了。

了解更多详情,参与讨论,请进入GBUNIX论坛

http://www.gbunix.com/bbs/index.php
责任编辑: trotter

相关文章
CVS的常用命令速查手册 - 01-19 08:41 pm - 点击: 4294
如何配置和使用SSH验证的CVS服务器 - 01-18 05:09 pm - 点击: 1221
使用 Subversion 来代替 CVS - 01-18 10:49 am - 点击: 2868
Subversion 比 CVS 更好用 - 01-18 10:44 am - 点击: 1356
配置CVS服务器和客户端完全解析 - 08-08 11:13 pm - 点击: 1253
cvs服务器的安装 - 06-29 10:24 pm - 点击: 2508
CVS服务器的安装与管理 - 06-11 02:29 pm - 点击: 3970

发表评论 查看评论 加入收藏 Email给朋友 打印本文
给该文章评分
1 2 3 4 5 6 7 8 9 10
平均得分 0, 共 0 人评分
1 2 3 4 5 6 7 8 9 10
发表评论
标题:
内容:
声明:本站资讯均来自互联网,所有文章版权归原作者和出版者所有,如涉及版权问题,请来信告知!
Copyright © 2002-2004 GBunix.com. All rights reserved.