`
wdlisoft
  • 浏览: 47301 次
  • 性别: Icon_minigender_1
  • 来自: 常州
最近访客 更多访客>>
社区版块
存档分类
最新评论

CVS配置与管理

    博客分类:
  • cvs
阅读更多

# title : CVSNT SERVER Configuration

#

# @author: H819

#

# @version: 0.5

#

# Copyright: free reference,note author name and the article link.

#

# Date :Dce 14th ,2005

#

# History:

#?? Dce 14th ,2005,version 0.5

 

/*

说明:

1.${CVSNT},表示,CVSNT的安装路径

2.${CVSNTROOT},表示,CNSNT ROOT Repository 路径

3.本文提到的 CVSNT 一般指 CVSNT Server

*/

 

****************

* CVSNT 的安装 *

****************

平台

CVSNT-2.5.03.2151;

windows xp sp2;

/*

注意:

一般需要 ntfs 格式的系统

CVSNT Server 官方站点

http://www.march-hare.com/

http://www.cvsnt.org/archive/?M=A

这个网址可以下载到原始安装文件和手册

*/

安装 CVSNT-2.5.03.2151

过程略

注意:

1.安装完成之后,安装程序会自动把 ${CVSNT} 加入到 path

2.cvs.ext 既是 server 又是 client,如果仅作为 client 端,想要运行 cvs 命令,也必须安装它;

3.注意设定 CVSNT Repository.

***********************

* CVSNT的用户验证方式 *

***********************

CVSNT的用户验证方式分两种

1.Windows系统用户与CVSNT用户共存的混合验证方式:

windows 操作系统用户和 CVSNT passwd 文件定义的用户都可以作为 CVSNT 的用户。

1.1 作为操作系统的用户登陆:输入操作系统的用户和密码;

1.2 作为 CVSNT 的用户登陆:输入 passwd 文件中定义的用户和密码。

在这种方式,操作系统的管理员帐户同时也是 CVSNT 服务器的管理员帐户。

2.CVSNT用户单一验证方式:

只有 CVSNT passwd 文件定义的用户作为 CVSNT 的用户。

登陆:输入 passwd 文件中定义的用户和密码。

默认工作模式是混合验证方式,但是使用单一验证方式对用户的管理比较方便一点,因此下面的介绍,基于 CVSNT 用户单一验证方式。

***********************

* CVSNT的主要配置文件 *

***********************

CVSNT 服务器安装完成之后,要定义 ROOT Repository (即上文定义的 ${CVSNTROOT} ),在该目录中,定义了服务器的各种配置,在这里可以定义管理选项参数。

本文主要介绍以下几个文件:config,passwd,admin,group,checkoulist,fileattr.xml,cvswrappers

*** config 文件 ***

只关注文中第一、二行注释

#Set this to `no" if pserver shouldn"t check system users/passwords

#SystemAuth=yes

SystemAuth: 定义验证方式,默认是 SystemAuth=yes ,即混合验证方式。

这项设置默认是注释掉的,相当于 SystemAuth=yes

如果想要修改为 CVSNT 用户单一验证方式,修改为 SystemAuth=no

注意,如果修改为? SystemAuth=no ,操作系统用户就不能登陆 CVSNT 服务器了,所以要在定义好 CVSNT 服务器的管理员之后(即修改好 passwd,admin,checkoutlist 三个文件之后),再修改它。

*** passwd 文件 ***

该文件中定义了 CVSNT 用户的用户名、密码、操作系统用户别名;

默认该文件是不存在的,只有管理员有权限创建和修改它;

该文件不能被 checkout

格式:

cvsadmin:fqr1fS4gDghrt:administrator

用户名:密码:操作系统用户别名

密码是CVS使用UNIX标准加密函数对密码进行加密后的结果;

这个用户名和密码和操作系统用户没有关系,修改它们不会对操作系统产生任何影响;

每个用户必须要有一个操作系统用户别名,这个别名必须在操作系统中真实存在,并且是管理员身份,否则该用户无法进行 cvs 操作。(为什么必须是管理员?)

/*

实际上, CVSNT 服务器是以该操作系统用户的身份进行文件的读写操作的,如果该操作系统用户为 guest ,则不能 checkout ,ls 等。

不知道为为什么 CVSNT 服务器没有把这项设置对使用者透明化,因为每个用户都要进行? checkout ,ls 等基本的操作,如果连这些基本的操作都不能进行的话,这个用户就没有存在的必要了。

按我的理解,格式就要用户名和密码,后面的操作系统别名默认为管理员,就像 servu 一样易于使用。

(也可能有其他的原因)

附:

cvsnt manual

The cvs passwd command can be used to add or delete new users. Only an administrator can do this.

Note that deleting a user does not remove them from any user permissions.

*/

*** admin 文件 ***

文件中定义了 CVSNT 服务器的管理员列表

格式:

user1

user2

...

该文件中的用户同样必须出现在 passwd 文件中;

该文件中的用户,拥有 CVSNT 服务器管理员的所有权限;

该文件默认是不存在的,需要手工建立;

该文件要加入到 checkoutlist 文件中。

实际上,cvsnt server 把这个文件当作一个特殊的 group 来对待的。

*** group 文件 ***

这个文件用来定义组,我们可以将同样性质的用户归入一个组,然后用给用户赋权限的方式给组赋权限,这样,一个组的用户就会具有同样的权限。

格式:

group1:user1 user2 user3

group2:user4 user5 user6

group3:user7 user8 user9

组的名称+冒号+用户名+空格+用户名+空格...

多个用户名之间用空格来进行分割;

组中的用户,要在 passwd 文件中存在。

 

*** checkoutlist 文件 ***

# The "checkoutlist" file is used to support additional version controlled

# administrative files in $CVSROOT/CVSROOT, such as template files.

#

# File format:

#

#?[<whitespace>]<filename><whitespace><error message><end-of-line>

#

# comment lines begin with '#'

该文件用来支持附加的版本控制操作,在 CVSROOT 中添加的文件,要在此文件中声明.

目前只知道,admin 文件需要声明.

格式举例:

?admin err msg by Apollo

?

注意:不要忘记文件名称之前的空格。

*** fileattr.xml 文件 ***

在每一个 Repository 建立之后,都会在 Repository ROOT 中建立一个名字叫做 CVS 目录,该目录中只有一个文件 fileattr.xml

fileattr.xml 文件中定义了访问该 Repository 的用户的权限;

对于新建立的 Repository ,默认是所有人拥有所有权限(CVSNT ROOT 除外)

CVSNT ROOT fileattr.xml:默认是只有管理员拥有其所有权限。

 

*** cvswrappers 文件 ***

refers to

http://www.mobilefish.com/developer/cvsnt/cvsnt.html

Before using CVS, it is recommended to update the cvswrappers file. The cvswrapper file contains file extensions which determines which file should be stored as binary files in the CVS Repository. To update this file do the following:

Add the following file extensions in the cvswrappers file, e.g.:

*.cab -k 'b'

*.class -k 'b'

*.doc -k 'b'

*.dll -k 'b'

*.ear -k 'b'

*.exe -k 'b'

*.exp -k 'b'

*.fla -k 'b'

*.gif -k 'b'

*.gz -k 'b'

*.jar -k 'b'

*.jpg -k 'b'

*.jpeg -k 'b'

*.lib -k 'b'

*.msi -k 'b'

*.mso -k 'b'

*.pdf -k 'b'

*.pfw -k 'b'

*.png -k 'b'

*.ppt -k 'b'

*.sit -k 'b'

*.swf -k 'b'

*.tar -k 'b'

*.tlb -k 'b'

*.vsd -k 'b'

*.xls -k 'b'

*.war -k 'b'

*.wmz -k 'b'

*.zip -k 'b'

 

******************

* CVSNT 配置实验 *

******************

*** 实验目的 ***

1.修改 CVSNT 服务器验证方式为 CVSNT 用户单一验证方式;

2.定义 CVSNT 服务器的管理员为 cvsadmin,密码为 cvsadmin;

3.定义两个 Repository(testa,testb) ,添加四个普通用户,每个 Repository 有两个用户.

test1:test1 , test2:test2 Repository testa 的用户,test1,只能读(checkout),test2 能读、写、添加文件(read,write,create).

test3:test3 , test4:test4 Repository testb 的用户,test3,只能读(checkout),test4 能读、写、添加文件(read,write,create).

*** 完成效果 ***

cvsadmin 能设置 CVSNT 服务器的配置,并且能对所有的 Repository 拥有全部权限;

test1,test2 只能看见 testa,并且 test1 只能对 teata 进行 checkout(read),test2 能对 testa 进行 checkout,commit,add (read,write,create)

test3,test4 只能看见 testb,并且 test3 只能对 teatb 进行 checkout(read),test4 能对 testb 进行 checkout,commit,add (read,write,create)

/*

说明:

权限参数有 read,write,add,tag,control. 这里只举例说明最常要的 read,write,add(参见帮助文档)

control 没有应用成功。

*/

*** 开始配置 ***

/*

说明:

1. 以下从命令行进行配置,注意步骤地顺序;

2. 设置权限等,都要把 Repository checkout 出来;

3. 对于 CVSNT 服务器的设置,实际上就是对 CVSROOT 这个特殊的 Repository 进行设置,所以首先也要把 CVSROOT checkout 出来.注意 checkout CVSROOT 需要用管理员身份;

4. 刚安装完成之后的 CVSNT server 默认的管理员是操作系统的管理员,所以用操作系统管理员身份 checkout CVSROOT;

*/

1 *** 进入命令行,建立一个临时目录,用来放置 checkout 出来的 Repository ,修改完成之后,再提交到 CVSNT server 上去。

d:\ md 00?? # d: 建立一个临时目录,进入

d:\00\

2 ***? 登陆? CVSNT server

d:\00\set cvsroot=:pserver:administrator:123456@localhost/cvsroot

/*

说明:

set cvsroot 是设置一个临时的环境变量,变量值为 = 右边部分;

pserver???? 为登陆协议,是一种明文协议,用户名和密码可以被监测到。本次实验用这种协议,其他的协议以后再总结;

administrator:123456??? 为本机操作系统的管理员用户和密码;

localhost?? 为登陆的机器地址,可以用 IP

/cvsroot??? cvsroot 是安装 CVSNT server 的时候,指定 CVSROOT 的别名。

*/

3 ***? 列表

d:\00\ cvs ls

/*

说明:

列出 CVSNT server CVSROOT 下面的所有 Repository

此时应该只有一个 CVSROOT ,它是服务器的根,服务器的所有配置都在这里;

此时登陆的身份是管理员,前文说过,CVSNT ROOT fileattr.xml 已经定义,默认是只有管理员拥有其所有权限;

列表命令成功,同时也说明登陆成功。

*/

4 *** checkout CVSNTROOT d:\00\

d:\00\cvs co cvsroot

/*

说明:

co commit 命令的简写,具体简写的命令,见帮助;

该命令会把? CVSNTROOT checkout d:\00\ ,并且会在 d:\00\ 建立一个 cvsroot 目录;

d:\00\cvsroot 里面是 CVSNTROOT 中的所有配置信息;

修改配置信息之后,再 commit 上去, CVSNT server 的配置随之改变了。

*/

5 ***? 添加用户信息

d:\00\cvs passwd -r administrator -a cvsadmin

d:\00\cvs passwd -r administrator -a test1

d:\00\cvs passwd -r administrator -a test2

d:\00\cvs passwd -r administrator -a test3

d:\00\cvs passwd -r administrator -a test4

/*

说明:

该命令会直接在 CVSNT server server 端直接建立一个 passwd 文件,而不会在已经 checkout d:\00\cvsroot 目录中建立此文件;

该文件只能由管理员建立,并且不能被非管理员修改,不能被 checkout;

-r 是管理的操作系统用户的别名

注意:

该命令不会影响操作系统用户;

此操作系统用户必须为管理员。

-a 添加用户

添加用户的时候,会提示输入密码。(本次实验,用户名和密码取相同)

建立的 passwd 文件内容应如下内容:

cvsadmin:oVaaG5hcPSOQY:administrator

test1:eXetD79lHrTgw:administrator

test2:zX3nQkEmS/Se2:administrator

test3:cZgugWplhpBd.:administrator

test4:pZ5M7WTmCHMmI:administrator

The cvs passwd command can be used to add or delete new users. Only an administrator can do this.

Note that deleting a user does not remove them from any user permissions.

参考上文 passwd 文件说明。

*/

6 ***? 定义 cvsadmin ? CVSNT server 管理员

d:\00\cvsroot 建立文件名为 admin 的文件(注意,无扩展名)

内容为 :

cvsadmin

即定义了 cvsadmin CVSNT Server 管理员;

如果还想加入其他的用户作为管理员,依次加入用户名即可,每个用户名一行;

实际上 CVSNT 把这个文件中的所有用户,当作是管理员组。

7 ***? 注册文件 admin checkoutlist 文件

打开 d:\00\cvsroot checkoutlist 文件,加入这一句:

?admin err msg by jh

注意 admin 前后的空格,具体的格式信息,参照前文 checkoutlist 文件 说明部分;

只有添加的 admin 文件需要注册到 checkoutlist 中,其他的添加文件不用。

8 ***? 定义 group

? d:\00\cvsroot 建立文件名为 group 的文件(注意,无扩展名)

内容为 :

#testall :hava all permissions

testaall:test1 cvsadmin

#testar :read only

testar:test2

#testbll :hava all permissions

testball:test3 cvsadmin

#testbr :read only

testbr:test4

testaall,testball 有完全权限;

testar,testbr???? 只读权限;

该文件不用注册到 checkoutlist

 

9 ***? 修改 cvswrappers 文件

参考上文。

10 ***? 修改验证方式

修改?? d:\00\cvsroot 下面的 config 文件

修改前面第二行为:

SystemAuth=no

即修改验证方式为 CVSNT用户单一验证方式。

 

11 ***? 提交对 CVSROOT 的修改

11.1 进入? d:\00\cvsroot

11.2 d:\00\cvsroot\cvs add admin group

由于 admin group 文件是新产生的,所以提交之前要添加到 commit 的计划之中;

运行完该命令之后,会提示运行 cvs

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics