Linux CVS配置

Standard

运行rmp -qa | grep “cvs”以确定系统已经安装有CVS Server

1)进入 /etc/xinetd.d 目录,编辑一个 cvspserver 的文件,文件内容如下:
# default: on
# description: The cvs server sessions;
#
service cvspserver
{
disable = no
port = 2401
socket_type = stream
protocol = tcp
wait = no
user = root
passenv = PATH
env = HOME=/home/cvsroot/CVSROOT
server = /usr/bin/cvs
server_args = -f –allow-root=/home/cvsroot pserver
log_on_failure += USERID
only_from = 192.168.0.0/24
}

其中only_from是用来限制访问的,可以根据实际情况不要或者修改。
# chmod 644 cvspserver

2)修改 /etc/services 文件,在其中加入服务端口(对应上面文件的 port = 部分),服务名与上面的文件名相同,内容格式如下:
cvspserver 2401/tcp # Cvs Server
cvspserver 2401/udp # CVS Server

3)创建 cvs 组和 cvs 用户
假设我们建一个组叫cvs,用户名是cvsroot.建组和用户的命令如下
# groupadd cvs
# adduser cvsroot -s /bin/bash -g cvs -d /home/cvsroot

4)创建并编辑 /home/cvsroot/.bashrc 文件,其内容如下:
.bashrc
=============================
# .bashrc
# User specific aliases and functions
# Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi
=============================

5)初始化 CVS,建立CVS仓库
# cd /home
# chown -R cvsroot:cvs cvsroot
# su – cvsroot
$ cvs -d /home/cvsroot init
此处对应上面创建的 cvsroot 路径
用 cvsroot 用户登陆,修改 /home/cvsroot (CVSROOT)的权限,赋与同组人有读写的权限:
$chmod 771 . (或者770应该也可以)
6)创建口令生成文件 passwdgen.pl (用 cvsroot 用户注册)
$ mkdir bin
$ cd bin

创建并编辑文件 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”;
$ chmod u+x passwdgen.pl

7)创建 cvs 用户密码文件 passwd , 读权限文件 readers , 写权限文件 writers.
这三个文件位于 /home/cvsroot/CVSROOT 目录下.(用 cvsroot用户注册)
$ vi passwd
passwd 内容如下:
cvsroot::cvsroot
work::cvsroot
zzg::cvsroot
anonymous::cvsroot

8)用 passwdgen.pl 生成密码,加入到上面的 passwd 文件中的用户的 :: 之间,如你给 work 用户分配密码为 work123 ,可如此运行:
$ passwdgen.pl “work123”
系统会显示出一串字符,将上面的字符拷贝到 :: 中.
$ vi readers,内容如下:
anonymous
$ vi writers,内容如下:
work
zzg

(特别注意:在 readers 中添加了某个用户,那么该用户如果添加到 writes 文件中将没有任何意义,因为系统在 readers 文件中找到该用户后,将不会再到 writes 文件中去查找,这会造成你添加在 writers 文件中企图赋予”写”权限的用户,由于该用户已经在 readers 文件中存在,而失去”写”权限.)

最后,我们来测试一下:
用 work 用户登录 cvs (假设我的 IPADDERS = 192.168.0.5):
$ cvs -d :pserver:work@192.168.0.5:/home/cvsroot login
如果输入口令后,如果没有返回出错信息,则表示你的 cvs 服务器搭建成功.

注:redhat fedora默认没有安装xinetd,需要先yum install xinetd一下