天天看点

linux下cvs安装

linux下cvs详细安装和配置

linux下cvs的安装和配置叫windows下面要简单很多,下面以redhat-as4为例进行介绍说明

一、安装和初始化cvs服务器

1、一般新装linux系统都默认然装了cvs服务器,验证是否已安装cvs

#rpm -q cvs

如果能显示出类似这样的版本信息,证明已安装cvs:

#cvs-1.11.17-8.rhel4

如果未安装,[url]http://www.cvshome.org/[/url]下载一个最新的rpm或者gz包安装即可;

2、创建cvs用户组与cvs用户(创建操作系统用户)

root用户下执行以下命令:

#groupadd cvsadmin(用户组名称请自由发挥)

#useradd -g cvsadmin cvsnew(用户名请自由发挥)

#passwd cvsnew

3、创建第一个cvsroot(代码目录)

root用户下执行:

#mkdir /usr/cvsapusic  此处可改为你想要的cvsroot路径和目录名

#chown -r cvsnew.cvsadmin /usr/cvsapusic  更改cvsroot的所有权,以便迁入项目

(这个命令的含义是将cvs代码仓库定义为cvsadmin组以及cvsnew用户所有,这样做的含义将在后面介绍)

#chmod 770 /usr/cvsapusic 更改文件夹的权限

4、初始化cvs

需要在cvsroot用户下执行(root用户也可)

#su - cvsroot

#cvs -d /usr/cvsapusic init 在刚才创建的cvsroot目录中创建代码仓库

*请注意,这里需要写上仓库的绝对路径,不能写当前路径,不然无法创建仓库

5、定义cvs服务器:

在/etc/xinetd.d/目录下创建文件cvspserver(默认安装cvs服务之后一般就会存在了,无须手动创建),编辑cvspserver文件,内容如下:

1)service cvspserver

{

    disable = no

    socket_type = stream

    flags = reuse

    wait = no

    user = root

    server = /usr/bin/cvs

    server_args = -f --allow-root=/usr/cvsapusic pserver    

    log_on_failure += userid

    only_from = 192.168.0.0/24

}

编辑文件时要注意书写格式,所有“=”号两边都要有一个空格(除了root=/仓库资源路径),否则服务不能正常启动。only_from是用来限制访问的,可以根据实际情况不写或者修改。server_args为cvsroot仓库资源路径,按实际情况填写,可以在这里填写多个cvsroot,相关设置下文将会逐一介绍。其他地方默认即可~~。

2)修改该文件权限:

# chmod 644 cvspserver

3)重启xinetd服务:

# /etc/rc.d/init.d/xinetd restart

到此cvs服务器已经搭建完成,现在已经可以通过用户cvsnew来远程访问cvsroot了,但是为了更科学有效地管理,下面将介绍如何新建其他用于访问cvs服务器用户。

二、cvs用户管理

对于创建cvs访问用户,我们有两种选择,下面分别进行介绍。

1.直接创建系统用户

#useradd -g cvsadmin user1  创建系统用户并加入到cvsadmin用户组

#passwd user1  为用户添加密码

创建用户后即可以通过客户端工具登录访问cvs服务器

好处:基本没什么好处...如果硬要找几点就只能说:配置简单、省事。

坏处:如果是一个工作团队,20-100人或者更多,要为每个人单独创建系统用户,就算设置成默认不允许登录,都会造成系统资源消耗,增加管理难度,而且最重要一点就是这样的设置方法不够专业不够安全,如果cvs资源库是放在互联网,大量的系统用户就会成为无可避免的安全隐患,保密工作无从谈起。

2.新建的所有cvs访问用户都通过cvs管理用户登录

    这种方法的本质就是当创建一个新的cvs用户时,并没有实际创建操作系统用户,而是通过加密验证的方法让新建的用户以cvsroot用户登录(即我们前面所创建的cvsnew用户),我们在新建第一个cvsroot所进行的chwon操作,将cvs资源库属主更改为cvsnew,目的就是让cvsnew用户对资源库中的所有文件具有操作权限,以便新用户可以通过cvsnew用户对资源库的全权访问。

    初始化cvsroot后,在cvsroot目录里面有一个cvsroot目录,该目录中有三个用户配置文件:passwd、writers、readers,我们可以通过这三个文件对用户的访问权限进行细分管理,下面详细介绍如何配合这三个文件对用户进行管理。

1)用户配置文件格式介绍:

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

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

readers:有cvs读权限的用户列表文件

     一个简单的一维用户列表,一个用户名占一行,由上往下写就ok

writers:有cvs写权限的用户的列表文件

2)手动创建用户配置文件

刚刚安装完cvs服务这三个文件可能不存在,我们可以通过手动创建

#cd /usr/cvsapusic/cvsroot  进入cvsroot目录

#touch passwd writers readers  手动创建用户配置文件

#chmod 770 passwd writers readers  修改用户配置文件的权限和属性

3)新建一个cvs用户

#htpasswd passwd user1    通过对passwd文件加密验证的方式创建cvs用户

(具体如何加密如何验证我们不需要关心,只需知道操作方法即可~~)

new password:xxx  输入新建用户密码

re-type new password:xxx  确认密码

4)编辑用户

#cat passwd  查看用户列表文件

user1:.tw.1aur7dd/i  如例所示用户已经创建并加密

#vi passwd  编辑用户

user1:.tw.1aur7dd/i:cvsnew  在该用户密码后添加冒号以及cvsroot的等效系统用户

保存退出,至此便完成了cvs新用户的创建,可以通过客户端工具登录cvs服务器对cvs资源库进行访问。

5)删除用户

删除用户同样轻松,只需要编辑passwd文件,将要相应的用户条目删除后保存退出即可,这里就不多作介绍了。

6)给各cvs用户分配权限

如果新建用户后没有将该用户加入到writers或readers表,那么该用户默认拥有所有权限,包括check out、commit、delete。

例如想让user1只有读cvs资源库的权限,可以编辑readers表,加入user1

例如想让user2有读写cvs资源库的权限,可以编辑writers表,加入user2

#vi readers

user1

user3

user4

...

#vi writers

user2

user5

好处:操作十分简单,功能十分强大,这就是cvs服务器典型的用户管理配置方法,建议大家都选用这种方法。

坏处:多花一点时间

三、为cvs服务器建立多个源代码仓库

刚刚讲述了通过修改cvspserver来配置cvsroot的路径,但在软件公司会存在多个cvsroot的需求,要求每个资源库独立分开,互相不能访问,可以通过两种方法实现。

1.修改cvspserver文件,增加资源库的访问路径,操作如下:

service cvspserver

    server_args = -f --allow-root=/usr/cvsapusic --allow-root=/usr/cvsesb --allow-root=/usr/cvsstudio pserver    

由上可见增加资源库路径实际上就是修改server_args项,前提个资源库的路径是存在的。

2.cvspserver文件重定向

由于xinetd中的server_args长度有限制,我们可以进行以下操作对cvspserver文件进行重定向

1)修改cvspserver文件如下:

    #server = /usr/bin/cvs

    server = /usr/local/bin/cvs.run

    #server_args = -f --allow-root=/usr/cvsapusic --allow-root=/usr/cvsesb --allow-root=/usr/cvsstudio pserver    

    #log_on_failure += userid

    #only_from = 192.168.0.0/24

避免引起其他无法预料的出错,将原来的server、server_args、log_on_failure等配置项注释掉,新添加一行代码server = /usr/local/bin/cvs.run(路径随意)。

2)创建并编写cvs.run文件

#cd /usr/local/bin

#touch cvs.run

#chmod 770 cvs.run  cvs.run必须为可执行文件

#vi cvs.run

手动编写cvs.run文件内容如下:

#!/bin/bash

/usr/bin/cvs -f \

--allow-root=/usr/cvsapusic \

--allow-root=/usr/cvsesb \

--allow-root=/usr/cvsstudio \

pserver

可以在cvs.run文件中填写所有cvs源代码仓库路径,写完保存退出,这样cvs所有的资源路径就集中在一个文件管理。

四、修改cvs服务监听端口

默认cvs服务的监听端口号是2401,像sqlserver著名的1433端口一样是黑客攻击的必然选择。如果cvs资源库是放在互联网上或其他安全保障相对较弱的地方,那修改cvs服务的监听端口号就很有必要。

1.查看配置文件

#vi /etc/services

查找一下,看是否有关于cvs服务的代码:

cvspserver      2401/tcp            # cvs client/server operations

cvspserver      2401/udp            # cvs client/server operations

这两行在cvs服务安装完成时就会存在,如果没有可以手动添加,我们可以清楚看到cvs服务的监听端口是默认的2401。

2.修改cvs服务监听端口

修改cvspserver的监听端口,将2401改成与系统其他端口不冲突,自己喜欢的端口号就可以了。

3.重启xinetd服务

#service xinetd restart

4.完成

继续阅读