使用 cvsd 配置 cvs 服务器
CVS 服务器最初被设计成由“xinetd”启动。不过现在的 Linux 发布版大多缺省不再安装或启动 xinetd 了,并且 CVS 服务器的配置也比较复杂。cvsd 是一个对 CVS pserver 的包装程序,它可以把 CVS 启动成一个独立的服务,并用指定的 uid/gid 运行在 chroot 的环境下,其安全性有所提高。并且,cvsd 的配置也要相对简单些。
本文将描述如何使用 cvsd 配置一个 CVS pserver。
1、安装 cvsd 软件包
对于基于 RPM 的 Linux 发布版,本站提供了预编译的 RPM 下载:
对其他发布版,您可以从 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
