Linux 2011-04-18
方法1
1.mkdir/home/cvsroot
2.cvs-d/home/cvsrootinit
方法2
1.exportCVSROOT=/home/cvsroot
2.cvsinit
Note:-d将会覆盖CVSROOT环境变量
添加用户与组1.groupaddcvs
2.useraddcvsroot
3.chown-Rcvsroot:cvs/home/cvsroot
4.chmod775-R/home/cvsroot
5.addotheruserforcvsserver:
adduserjianfeng
usermod-Gcvsjianfeng配置/etc/services文件添加cvspserver(如果有就不要加了)
cvspserver2401/tcp#cvsclient/serveroperations
cvspserver2401/udp#cvsclient/serveroperations配置inetd(或xinetd)1.对于inetd(Debain)
编辑/etc/inetd.conf,加入
cvspserverstreamtcpnowaitroot/usr/bin/cvs--allow-root=/home/cvsrootpserver
允许多个仓库:
cvspserverstreamtcpnowaitroot/usr/bin/cvs--allow-root=/home/cvsroot
--allow-root=/home/jx/cvspserver
2.对于xinetd(RedHat)
编辑/etc/xinetd.d/cvspserver
servicecvspserver
{
disable=no
socket_type=stream
wait=no
user=root
env=HOME=
server=/usr/bin/cvs
server_args=-f--allow-root=/home/cvsrootpserver
}
允许多个仓库:
servicecvspserver
{
disable=no
flags=REUSE
socket_type=stream
wait=no
user=root
server=/cvsroot/cvs.run
log_on_failure+=USERID
}
(xinetd的server_args长度限制,创建一可执行的cvs.run脚本)
cvs.run
#!/bin/bash
/usr/bin/cvs-f
--allow-root=/home/cvsroot
--allow-root=/home/jx/cvs
pserver
3.重启xinetd
/etc/rc.d/init.d/xinetdrestart(forredhat)
/etc/init.d/inetdrestart(fordebian)
管理CVS服务器CVS服务器认证当认证一用户时,CVS服务器首先检查"$CVSROOT/CVSROOT/passwd"文件是否存在此用户,
如果存在用户的entry,就用该entry验证.否则,如果SystemAuth=yes,然后再用操作
系统的passwd(/etc/passwd)文件做认证.
CVSROOT下的passwd文件与/etc/passwd文件格式不同,
{cvs用户名}:[加密的口令]:[等效系统用户名]
例:test2:yXgbAY2CWc882:cvsroot
CVS服务器读写权限的控制1.readers:有cvs读权限的用户列表文件
2.writers:有cvs写权限的用户的列表文件
Note:这两个文件必须以空行结束添加CVS用户示例(jx具有写权限,jianfeng具有读权限)1.编辑CVSROOT/passwd文件(cvsroot用户),加入以下两行:
jx:$fajkdpaieje:cvsroot
jianfeng:fjkal;ffjieinfn/:cvsroot
note:上面的第二个字段(分隔符为:)是密文口令,可以随便输入.
2.使用如下的perl脚本生成密码,copy到CVSROOT/passwd文件中(第二个字段).
#!/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";
3.如果jx需要密码123456,执行上面的脚本产生密文.
./passwdgen.pl123456
AWoU4Acdd8XLM(将此密文考到CVSROOT/passwd文件中)
4.因为jianfeng具有读权限,应将其加入readers文件.
编辑readers文件,
jianfeng
(空行)
5.因为jianfeng具有写权限,应将其加入writers文件.
编辑writers文件,
jx
(空行)
note:writers中的用户不能在readers中passwd,readers,writers缺省安装时不存在.添加CVS项目1.进入到你的已有项目的目录,比如:pds
cdpds
cvsimport-m"PHSpacketprototype"pdspds_0_0_1start访问CVS服务器1.exportCVSROOT=:pserver:[email protected]:/home/cvsroot
2.cvslogin
输入你的password成功登陆后,就$HOME生成一个.cvspass文件.以后
就不用再输入口令了.