使用 cvsd 配置 cvs 服务器

CVS 服务器最初被设计成由“xinetd”启动。不过现在的 Linux 发布版大多缺省不再安装或启动 xinetd 了,并且 CVS 服务器的配置也比较复杂。cvsd 是一个对 CVS pserver 的包装程序,它可以把 CVS 启动成一个独立的服务,并用指定的 uid/gid 运行在 chroot 的环境下,其安全性有所提高。并且,cvsd 的配置也要相对简单些。

本文将描述如何使用 cvsd 配置一个 CVS pserver。

1、安装 cvsd 软件包

对于基于 RPM 的 Linux 发布版,本站提供了预编译的 RPM 下载:

cvsd-1.0.14-1.i386.rpm
cvsd-1.0.14-1.src.rpm (source)

对其他发布版,您可以从 cvsd 的原始站点下载 源代码包,自己编译和安装。

2、配置文件 /etc/cvsd/cvsd.conf

检查 cvsd 的配置文件。有几点需要注意:

  • RootJail:cvs 将运行的 chroot 根目录。缺省设置为

    RootJail /var/lib/cvsd

    对于基于 RPM 的发布版,cvsd 的安装包已经对这个目录进行了初始化:

    # cvsd-buildroot /var/lib/cvsd

    对于其他发布版,如果这个目录没有初始化;或者您在配置文件中改变了缺省目录“RootJail”,您就需要运行 cvsd-buildroot 命令手动初始化。

  • Uid 和 Gid: cvsd 运行时使用的用户 ID 和组 ID。缺省设置是:

    Uid cvsd
    Gid cvsd

    对于基于 RPM 的发布版,cvsd 的安装包已经创建了 cvsd 用户和组。对于其他发布版,您必须手动创建它们。

  • Repos: 软件仓库的路径,每个仓库在配置文件中用一行这个配置。每个路径都是相对于“RootJail”并且以“/”字符开头。例如:

    Repos /coolsoft
    Repos /hotsoft

3、创建软件仓库

创建软件仓库,如“coolsoft”,用如下命令:

# cvs -d /var/lib/cvsd/coolsoft init

这个命令将创建目录 /var/lib/cvsd/coolsoft,并在其下创建一个 CVSROOT 目录树。

如果您允许用户创建此仓库的顶级目录:

# chown cvsd:cvsd /var/lib/cvsd/coolsoft

编辑文件 /var/lib/cvsd/coolsoft/CVSROOT/config 修改“LockDir”选项:

LockDir /tmp/coolsoft

这个目录是相对于“RootJail”目录,如 /var/lib/cvsd。必须手工创建此目录:

# mkdir /var/lib/cvsd/tmp/coolsoft
# chown cvsd:cvsd /var/lib/cvsd/tmp/coolsoft

现在,创建所有可以访问这个仓库的用户和他们的密码:

# cvsd-passwd /var/lib/cvsd/coolsoft jack

如果您允许匿名访问这个仓库,创建一个用户,名为“anonymous”或“anoncvs”,并设置密码为空:

# cvsd-passwd /var/lib/cvsd/coolsoft anoncvs

创建新文件 /var/lib/cvsd/coolsoft/CVSROOT/writers

# touch /var/lib/cvsd/coolsoft/CVSROOT/writers

可以保护仓库的访问权限,否则所有的用户都可以对本仓库有写入权限。在这个文件里,加入所有可以对本仓库有写入权限的用户名,一行一个用户。

如果您不允许用户创建仓库的顶级目录,您可以先创建将要用到的顶级目录,以存放用户递交的文件:

# cd /var/lib/cvsd/coolsoft
# mkdir client server
# chown cvsd:cvsd client server

4、启动 cvsd,测试软件仓库及权限

启动 cvsd,使用命令

# /etc/init.d/cvsd start

测试新的仓库:

# cvs -d :pserver:jack@myhost.at.office/coolsoft login
# cvs -d :pserver:jack@myhost.at.office/coolsoft co client


留下评论