关于Linux下的CVS的安装与配置管理

来源:互联网 发布:f3322免费域名 编辑:程序博客网 时间:2024/05/18 07:46
关于Linux下的CVS的安装与配置管理

一、CVS服务器的安装:

1、查看你的操作系统上是否安装了CVS:
#>; rpm -qa | grep cvs

如果没有安装你可以在Redhat 第2张光盘上找到,另外你也可以在网上下载到最新的rpm包。很容易找,其实不存在什么linux版本。

2、建立client用户组:

#>; groupadd client

3、建立client组的cadmin用户和所属的目录:

#>; useradd -g client –G client –d /cvsroot/ cadmin

4、为cadmin用户添加密码:

#>; passwd cadmin

然后,建立系统用户
useradd yqj;
useradd cz
useradd wjq;
useradd yhc;
这里4个用户都属于自己的用户组,因为这里没有指定组给他们.
接着给每个用户设置密码
passwd yqj;
passwd cz;
passwd wjq;
passwd yhc;
一个用户是可以属于多个组的,为了控制对工程文件的权限设计,这里需要对权限进行修改,
如果对于一个src项目(后面会提到)只想让yqj,cz对他进行读写,其他人不可以访问,那就需要把这2个用户加到passwd和writers中去。
如果对于一个src项目(后面会提到)只想让yqj对他进行读写,cz可以读但是不可以写,那就需要把yqj用户加到passwd和writers中去,把cz这个用户加到passwd和readers中去。但是系统用户创建的文件夹都属于自己建立的哪个组,比如说文件夹a1由yqj建立,那这个文件夹也属于yqj这个组管理,其他不属于yqj这个组的是不好访问到的,这里就需要把其他用户添加进这个组来
usermod –G yqj cz
-G就是添加的外组,一个用户可以属于多个组,比如usermod –G yqj,yhc,wjq cz
cz代表是哪个用户需要添加到外组
usermod –G yqj,yhc,wjq cz 的意思就是把cz这个用户加到yqj,yhc,wjq3个用户组中去,这样cz用户就可以访问操作这3个组用户所写的任何东西了
所以我们来为上面4个用户添加外组
usermod –G cz,wjq,yhc,client yqj
usermod –G yqj,wjq,yhc,client cz
usermod –G cz,yqj,yhc,client wjq
usermod –G cz,wjq,yqj,client yhc
添加外组最大的好处就是让其他用户可以访问另一个用户所建立的文件夹里面的东西,具体的读写控制还是要通过cvs中的readers和writers来控制。
5、改变 /cvsroot/ 的目录属性:

#>; chmod –R 770 /cvsroot

6、改变用户登陆身份:

#>; su cadmin

7、开始创建单个项目:

#>; cd /cvsroot/client

如果没有client就自己建立一个,因为我做的是服务端和客户端,所以我在/cvsroot下建立了client和 server2个文件夹

8、开始建立仓库:
#>; cvs –d /cvsroot/client/src init
#>; cvs –d /cvsroot/client/bin init
格式是上面那样,我自己建立的是cvs –d /cvsroot/client/src init
cvs –d /cvsroot/client/bin init
我把一个人用的文件夹当做一个工程来处理了,这里方便以后的控制权限
9、建立CVS服务启动文件,我们使用xinetd方式:

#>; [Crtl]+[d] 切换到root用户身份
#>; cd /etc/xinetd.d
#>; vi cvspserver
如果没有这个文件就自己建立一个
service cvspserver
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/bin/cvs
server_args = -f --allow-root=/cvsroot/client/src --allow-root=/cvsroot/client/bin pserver
log_on_failure += USERID
}

注:由于xinetd的server_args长度限制,当你想运行很多的单个仓库的时候,可以这么做:

#>; vi cvspserver

service cvspserver
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server = /cvsroot/cvs.run
log_on_failure += USERID
}

编写cvs.run脚本
如果没有cvs.run文件就自己建立一个,路径要和上面server = /cvsroot/cvs.run一致,不可以乱建,这里我把cvs.run放到了/cvsroot下面
#>; vi /cvsroot/cvs.run

#!/bin/bash
/usr/bin/cvs -f --allow-root=/cvsroot/client/src --allow-root=/cvsroot/client/bin pserver

#>; chmod a+x /home/cvsroot/cvs.run 这里是给所有人执行cvs.run的权限


10、加入cvs服务:

#>;vi /etc/services

cvspserver 2401/tcp #pserver cvs service
cvspserver 2401/udp #pserver cvs service

11、启动cvs服务:

#>; /etc/init.d/xinetd restart
注意:如果这里找不到相应的启动命令,一定是xinetd没有安装,去你的linux安装盘找一下安装好这个文件就可以运行这个命令了,我的就是没有安装,我在第3张盘找到了这个文件,然后安装好了这个文件就可以运行了.rpm 文件名 就可以进行安装了
12、检查cvspserver服务是否已经启动:

#>; netstat -l |grep cvspserver
应该有如下结果:

tcp 0 0 *:cvspserver *:* LISTEN

二、CVS服务的用户管理:

上面我们已经建立了src和bin两个CVS仓库,下面我们分别给两个仓库建立cvs用户。

13、创建可以登陆cvs服务器的用户名和密码:

#>; su cadmin
#>; vi / cvsroot/client/src/CVSROOT/passwd
没有passwd就自己建一个,下面是用户和密码格式。
yqj:******:yqj
cz:******:cz
wjq:******:wjq
yhc:******:yhc
这里的密码一定不是明码,是用密码计算器计算出来的,下面,有个计算机密码的,你现在先用**代替,一会再替换过来
#>;vi /cvsroot/client/bin/CVSROOT/passwd

yqj:******:yqj
cz:******:cz
wjq:******:wjq
yhc:******:yhc
 (注意:*****一定要是加密的密码才行,不是加密的密码,系统不识别,所以一定要做下面的加密文件,对密码加密)
这两个文件的意思是有yqj,cz,wjq,yhc四个属于不同组的用户。然后对这4个用户进行赋权,在/cvsroot/client/bin/CVSROOT/ 下建2个文件,readers,writers ,这2个文件是用来控制权限的,比如说你想让你的src工程只让yqj和cz可以读写,那就把yqj和cz名字加到writers中去,格式如下:

#vi /cvsroot/client/src/CVSROOT/writers
yqj
cz
这样就只有这2个用户可以对src工程目录进行读写,其他人不能访问也不能读写

如果允许wjq读src不让他写,就把wjq加到readers中去,格式和上面一样,:
#vi /cvsroot/client/src/CVSROOT/readers
 wjq

注意:这里的cvs用户我的理解是影射到了系统的对应用户,上面建立的4个用户都是系统用户

14、*****为密码,由以下文件生成:
这个文件是生成密码用的随便你放在哪个路径下
#>; vi / cvsroot/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 / cvsroot/passwd.pl

15、如果你想生成一个密码是“123456”,则:

#>; /cvsroot/passwd.pl ////"123456////"

回车即可得到加密密码,用其替换passwd文件中的*****

16、Ok,cvs现在已经全部安装完成了,如果你想让一个用户拥有src的权限,你就在/cvsroot/client/src/CVSROOT/passwd中给
他加入一个用户;如果你想让一个用户同时具有src和bin的权限,你就给
/ cvsroot/client/src/CVSROOT/passwd 和
/ cvsroot/client/bin/CVSROOT/passwd里给他加一个用户名和密码相同的用户即可。最后,我们试用一下:

#>; cvs -d :pserver:yqj@172.30.5.107:/ cvsroot/client/src login
(注意:/cvsroot/client/src,是你所建好的库路径,一定要和cvspserver文件中的server_args下的路径一样,不然会出错)
敲入命令回车后提示输入yqj的密码,你按照自己设置的密码输入,如果没有什么错误信息出现就是成功了(我的机器IP地址是172.30.5.107)

linux下的测试就用这个,windows下的测试我下了一个叫wincvs的工具,大家也可以去下下,挺好用的



wincvs的使用方法
首先安装好这个软件,然后打开这个软件,选择 管理>设置,如图
 
点开设置,然后对他进行设置,具体设置如下图,
 
认证方式选择pserver,路径填写/cvsroot/client/工程名,这里我的工程是src,所以写的是src
下面是cvs服务器的地址。用户名是你所连接的工程下面的passwd中的用户名才可以登录,不然无法登录的,这里我的工程是src,cz这个用户已经在我的/cvsroot/client/src/CVSROOT/passwd文件中已经有这个用户了,所以我用这个用户登录,然后点确定。


然后开始登录。如下图

选择管理>登录

 

确定后如下图

 
再点确定,可以看到下面信息
 
输入口令以后可以看到下面的信息,
 
下面的提示信息就代表登录成功了,好了,现在就可以对src这个工程进行添加文件管理文件了,具体的管理设置命令还是需要用到cvs命令,如果不熟悉cvs命令就可以学习一个wincvs的操作使用手册,因为cvs命令和wincvs都可以达到同样的效果,不熟悉linux系统的用户最好用wincvs,这个比较容易上手,对linux熟悉的用户去学习一下cvs的命令很简单也很容易学会的,好了这里的配置cvs和登录就完成了


随后会写一个关于wincvs的管理控制文挡,方便大家对自己工程文件的管理。