linux下配置cvs服务器以及cvs常用命令

1、查看系统是否安装有cvs

#cat /etc/services | grep cvspserver
看看是否有:

cvspserver  2401/tcp #CVS client/server operations

cvspserver  2401/udp #CVS client/server operations

这2行。系统自带了CVS时,这2行也已经有了,只需要确认一下。如果没有,请自己加上去。

2、然后必须创建启动脚本

#vi /etc/xinetd.d/cvspserver 代码如下:

################################################

# default: off
# description: An xinetd internal service which echo's characters back to clients. \
# This is the tcp version.

service cvspserver
{
 disable  = no
 flags  = REUSE
 socket_type = stream
 user  = root
 wait  = no
 server  = /usr/bin/cvs
        server_args = -f --allow-root=/home/cvsroot pserver
        log_on_failure = USERID
}  

################################################

其中 server指定CVS可执行文件路径,默认安装就是/usr/bin/cvs。server_args指定源代码库路径及认证方式等,例子中把源代码存放在cvsroot的主目录中,也可以另外指定路径,但必须注意权限设置,pserver是密码认证方式,这种方式的安全性要差一些,但操作起来比较简单。请注意每行等号左右都有一个空格,否则无法启动服务。

事实上,这个文件的格式非常容易写错,而这些错误是没有任何提示的,所以我强烈建议你复制同目录下的其他文件作为模板(我使用的是echo这个文件)再修改。(=号左端是一个tab位,右边是一个空格)。  

3、创建用于CVS的组和用户:

#groupadd cvs

#useradd cvsroot -g cvs

#passwd cvsroot      

4、 初始化CVS   

 切换到cvsroot用户,然后进行初始化:

#cvs -d /home/cvsroot init

这个路径应该与cvspserver文件中指定的路径相同,初始化后会在此路径下面创建CVSROOT目录,存放用于CVS管理的一些文件。此时重新启动xinetd服务,CVS服务器应该能够启动了。

#########################################################3

加入cvs服务
#>vi /etc/services
cvspserver 2401/tcp #pserver cvs service
cvspserver 2401/udp #pserver cvs service
这个地方如果是redhat的话就已经会有,就不用再加了。当然如果你要设立别的服务可以在添加使用别的端口eg:
cvspserverUser 2402/tcp #pserver cvs service
cvspserverUser 2402/udp #pserver cvs service

#########################################################  

#/sbin/service xinetd restart

当然,重新启动计算机也可以。确认是否启动:
#netstat -anp|grep 2401

如果能看到:

#tcp 0 0 0.0.0.0:2401

说明已经正常启动,没有的话请重新检查配置过程是否有错误或者遗漏。

5、用户管理

   为了CVS系统的安全,我们要修改/home/cvsroot/CVSROOT/config文件,将"#SystemAuth =no"的前而的注释号#去掉,即改为:

SystemAuth =no

这样CVS就不会验证系统用户了,否则当用户名不在passwd文件中时,CVS会进行系统用户的验证。
此外如果需要还配置读写权限,使用CVSROOT目录下的readers和writers文件进行这个工作。这2个文件默认也是没有的,没关系,自己创建就可以了。readers文件记录拥有只读权限的用户名,每行一个用户;writers文件记录拥有读写权限的用户名,也是每行一个用户。注意,readers文件比writers优先,也就是说出现在readers中的用户将会是只读的,不管writers文件中是否存在该用户。

#vi /home/cvsroot/CVSROOT/passwd

user1:*****:cvsroot
user2:*****:cvsroot

这个文件的意思是user1、user2拥有cvsroot的使用权限,登陆后的权限是cvsroot权限。注意:这里的cvs用户和系统用户是不同的。

  

*****为密码,由以下文件生成

  

#vi /home/cvsroot/passwd.pl  passwd.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}
";

#############

  

#chmod a+x /home/cvsroot/passwd.pl

#/home/cvsroot/passwd.pl "123456"  回车即可得到加密密码,用其替换passwd文件中的*****

  

策略登陆即可

  

6、cvs作为客服端如何使用。

#export CVSROOT=:pserver:username@127.0.0.1:/home/cvsroot

#cvs login 将提示输入密码

#cvs checkout moduleName

#cvs update更新。。。。
                            

 

posted on 2015-11-20 16:11  zyz913614263  阅读(1627)  评论(0编辑  收藏  举报

导航