我们将讨论如何利用OpenSSH作为远程访问手段来假设CVS服务器。 其他的访问手段,包括:pserver:和:server:不能用来对CVS仓库进行写访问。 :pserver:通过网络发送密码明文,而CVS的所有端口都不支持:server:。 在这节末尾介绍了如何用:pserver:对CVS进行匿名只读访问。
配置我们的CVS服务器包括以下四个步骤:
以root身份登录,用下面的命令创建一个新的CVS仓库:
mkdir /cvsroot && chmod 1777 /cvsroot && export CVSROOT=/cvsroot && cvs init |
用root登录并执行下面的命令可以设置CVS允许通过:pserver:进行匿名只读访问:
(grep anonymous /etc/passwd || useradd anonymous -s /bin/false) && echo anonymous: > /cvsroot/CVSROOT/passwd && echo anonymous > /cvsroot/CVSROOT/readers |
如果你使用了inetd,下面的命令将在/etc/inetd.conf中添加pserver条目:
echo "2401 stream tcp nowait root /usr/bin/cvs cvs -f \ --allow-root=/cvsroot pserver" >> /etc/inetd.conf |
执行killall -HUP inetd命令,重新读入修改后的inetd.conf文件。
如果你使用了xinetd,下面的命令将在/etc/xinetd.conf中添加pserver条目:
cat >> /etc/xinetd.conf << "EOF" service cvspserver { port = 2401 socket_type = stream protocol = tcp wait = no user = root passenv = PATH server = /usr/bin/cvs server_args = -f --allow-root=/cvsroot pserver } EOF |
执行killall -HUP xinetd命令,重新读入修改后的xinetd.conf文件。
要测试对新的仓库的匿名访问,需要一个能从另一台机器通过网络访问 CVS服务器的账号。我们不需要CVS仓库的账号。用非特权用户登录到另外一台机器并执行下面 的命令以完成对CVS仓库匿名访问的测试:
cvs -d:pserver:anonymous@servername:/cvsroot co cvstest |
注: 用CVS服务器的IP地址或主机名替换命令中的"servername"。
mkdir /cvsroot : 建立CVS仓库目录。
chmod 1777 /cvsroot : 为CVSROOT修改访问权限标志位。
export CVSROOT=/cvsroot : 为所有的cvs命令指定新的CVSROOT变量。
cvs init : 初始化新的CVS仓库。
cvs import -m "repository test" cvstest vendortag releasetag : 所有的源码模块在使用前必须用cvs import命令导入CVS仓库中。 标志-m为新的模块指定初始的描述。参数"cvstest"是此模块的名字,其他的cvs命令将用此名字来操作 该模块。参数"vendortag"和"releasetag"用于区分每一个CVS模块的不同版本。这两个是强制性使用的。
(grep anonymous /etc/passwd || useradd anonymous -s /bin/false) : 检查anonymous用户是否已存在,如果没有则创建该用户。
echo anonymous: > /cvsroot/CVSROOT/passwd : 将anonymous用户加入CVS的passwd文件。在配置过程中这个文件只有这里用到。
echo anonymous > /cvsroot/CVSROOT/readers : 将anonymous用户加入CVS的readers文件。 这个文件包含了对仓库拥有只读访问权限的用户列表。