Chinaunix首页 | 论坛 | 博客
  • 博客访问: 623272
  • 博文数量: 262
  • 博客积分: 8433
  • 博客等级: 中将
  • 技术积分: 2141
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-31 09:37
文章分类

全部博文(262)

文章存档

2012年(1)

2011年(168)

2010年(92)

2009年(1)

分类: 嵌入式

2011-04-18 10:25:42

CVS是一种广泛应用的、开源的、透明于网络的版本控制系统。用户使用CVS时,首先要架设一台CVS服务器,在CVS服务器上导入项目实例、设置CVS项目访问控制等。而客户则通过客户端来访问CVS服务器,客户可以取得项目最新代码副本,提交自己修改的代码等,而客户可以从Internet、LAN甚至本机来访问CVS服务器。下面,我就带领大家在Linux环境下架设一台CVS服务器,希望能够对想要学习CVS服务器架设的朋友带来一些帮助。

1、下载源码

通过搜索引擎找到CVS的源代码包,也可以从CVS的官方网站CVShome.org上寻找,由于CVS历史上也出现过一些安全漏洞,所以建议要定期去其官方网站上看看有没有最新版本推出。

2、编译安装

[root@terry src]# tar -xjpvf CVS-1.12.5.tar.bz2

[root@terry src]# cd CVS-1.12.5

[root@terry CVS-1.12.5]# 。/configure --prefix=/usr/local/terry_yu/CVS

--disable-server-flow-control

[root@terry CVS-1.12.5]# make

[root@terry CVS-1.12.5]# make install

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

注:除了使用源码包进行安装之外,还可以使用RPM包来安装。

3、设置启动CVS服务

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

在/etc/xinetd.d目录下为CVS服务创建一个配置文件,比如:/etc/xinetd.d/CVSpserver,编辑/etc/xinetd.d/CVSpserver,输入以下内容:

service CVSpserver

{

disable = no

socket_type = stream

wait = no

user = root

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

然后重新启动xinetd:

[root@terry bin]# /etc/rc.d/init.d/xinetd restart

Stopping xinetd: [ OK ]

Starting xinetd: [ OK ]

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

4、在CVS服务器端建立Repository

首先要创建一个名为CVS的组和一个名为CVSroot的用户,以后要访问CVS服务的用户加入CVS这个组:

[root@terry root]# groupadd CVS

[root@terry root]# useradd -g CVS -s /sbin/nologin CVSroot

[root@terry root]# chown -R CVSroot /home/CVSroot

接下来进行初始化:

[root@terry root]# CVS -d /home/CVSroot init

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

[root@terry root]# chown -R CVSroot.CVS /home/CVSroot

[root@terry root]# chmod -R ug+rwx /home/CVSroot

[root@terry root]# chmod 644 /home/CVSroot/CVSROOT/config

为了CVS系统的安全,我们要修改/home/CVSroot/CVSROOT/config文件,将“#SystemAuth =no”前面的注释号#去掉,即改为“SystemAuth =no”,然后给开发者们逐一建立账号,新建的不要分配用户目录,因为它将作为一个虚拟用户帐号来使用,具体命令如:

[root@terry root]# useradd -g CVS -M bogus

[root@terry root]# passwd bogus

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

[root@terry root]# cp /etc/shadow /home/CVSroot/CVSROOT/passwd

[root@terry root]# chmod 0644 /home/CVSroot/CVSROOT/passwd

然后修改passwd文件,将除bogus之外的所有行删除,然后去掉每行第二个冒号以后的所有内容,并添上字符串CVSroot, 改为如下格式:

bogus:ND5$J8N9BW5DKV.nPdxfdsh:CVSroot

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

[root@terry root]# userdel -f bogus

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

阅读(724) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~