当前位置: 首页 > 图文教程 > 服务器 > Linux服务器 > RedHat8.0上CVS服务器的建立和权限配置

Linux服务器
Linux上双网卡绑定方法(Suse9SP3)
Linux操作系统调优参数的意义
Linux下使用SSH客户端及其Sftp文件传送
教你恢复被误删除的Linux文件
SQL Server注入大全及防御
Linux无法解析域名的解决办法
Linux系统下安装和配置MyEclipse的方法
Ubuntu下VirtualBox 1.4.0设置文件共享
Windows与Linux系统共享StarDict字典文件
修改Linux下相关的登陆信息
Windows通过SecureCRT远程登录Linux主机
Linux操作系统如何修改SWAP交换区的大小
Linux操作系统下为Apache目录添加密码
Linux时间设置与同步(NTP)
Linux内核补丁AMD旁路转换缓冲(TLB)错误
Linux架设DHCP服务器的方法
Fedora 8下Apache配置与管理
Linux操作系统下用单网卡捆绑双IP的方法
Ubuntu Linux系统环境变量配置文件
SUSE Linux中将Tomcat作为Service运行

Linux服务器 中的 RedHat8.0上CVS服务器的建立和权限配置


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-18   浏览: 44 ::
收藏到网摘: n/a


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

建立一个源代码库主要有以下几步:
(1)初始化cvs服务器环境。
#cvs-d/usr/local/sourceinit
之后进入/usr/local/source,可以看到有一个目录CVSROOT,下面是初始化后的CVS服务器配置文件。暂且保持不动。
(2)把cvs服务放到xinetd系统服务中。
首先在/etc/xinetd.d目录下生成任务配置文件cvspserver,文件名称可以随便用。
其中内容大致如下:
servicecvspserver
{
flags=REUSE
socket_type=stream
wait=no
user=root
protocol=tcp
server=/usr/bin/cvs
server_args=-f--allow-root=/usr/local/sourcepserver
disable=no
}
其中server_args一个参数指定了源代码库路径,一个指定了服务器使用密码认证方式。
第二,要确认/etc/services文件中,有cvspserver关键词,并分配了端口,如:cvspserver2401/tcp。
第三,重新启动xinetd服务,cvs服务就可以用了。
(3)测试。假定cvs服务器在192.168.0.205上,系统上有一个用户cvs。登陆另一台linxu机器,执行下列命令可以完成测试:
$exportCVSROOT=:pserver:[email protected]:2401/usr/local/source
$cvslogin
输入密码,没有出错提示表示登陆成功。

如果想在一个linux系统上建多个源代码库,分别提供cvs服务。重复上面步骤就可以了。
第一步时候要注意使用一个不同路径。
第二步放到xinetd系统服务中稍微麻烦点。/etc/xinetd.d目录下要生成一个新的任务配置文件,例如cvspserver1,文件中service名称一定要区分第一个,例如servicecvspserver1,server_args做相应变动。还要在/etc/services文件中,加入新的服务端口号,例如:cvspserver12402/tcp。重新启动xinetd服务.
第三步测试时候,可以这样设定:
$exportCVSROOT=:pserver:[email protected]:2402/usr/local/source1

cvs作为并行版本控制系统,多用户读写是需要的。但有时候希望有些用户只能checkout,不能提交新代码。有时希望cvs上的某些用户不能checkout一些代码,例如和另一个开发组共用一个CVS,希望另一个组的成员不能checkout自己组代码。
cvs服务器有一套自己的用户认证机制,我使用时候没采用,而是使用了系统上用户直接作为cvs服务器用户,采用linux组、用户权限实现了这样的功能。
举例说明,在linxu系统上模拟实际两个开发组a、b,分别有用户a-user1,a-user2,b-user1,b-user2。
模块a-source,希望a组成员都可以读写,b组成员没有任何权限。可以使用以下系列命令:
#chown-Ra-user1a-source
#chgrp-Raa-source
#chmod-R770a-source
如果希望模块a-source,只有a-user1可以写,同组其它用户可以读,b组成员没有任何权限,把chmod命令改成-R750就行了。
必须说明的,cvs中默认一个用户checkout代码时候,会在当前模块下生成一个锁文件,如果这个用户对当前模块没有写权限,读是不可能的。配合上面的权限设置,必须改一下cvs服务器配置。改成不在当前模块目录下生成锁文件,把锁文件集中到一个所有用户都有读写权限的目录。修改配置文件CVSROOT/config:
#PutCVSlockfilesinthisdirectoryratherthandirectlyintherepository.#LockDir=/var/lock/cvs
把LockDir设上就可以了。