windows下cvsnt的配置(全)

在服务器端安装好cvs后,建立一个或多个库,这样,在每个库中自动生成CVSROOT文件夹,里面有很多重要的配置文件,有些文件是自动存在了的(如config,passwd。其中passwd文件在没有添加任何用户时,是不存在的,当用命令添加了一个用户后,这个文件便自动生成了),而有些是需要cvs系统管理员手动建立的(如admin,group)。

1、config文件

控制CVSNT的验证工作方式的就是config文件,注意该文件最前面的两行:

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

第二行就是我们要修改的内容,默认状态是被注释掉的,SystemAuth有两个值yes和no:

yes:pserver将使用Windows系统用户和CVSNT用户来共同验证(若CVSNT用户未定义,则用Windows系统用户来进行验证),默认为yes,CVSNT用户在后面将要介绍的passwd文件中定义。

no:只使用CVSNT用户来进行验证。

config文件不能在服务器端修改(因为格式为FILE的文件是无法在CVSNT服务器端进行编辑保存的), 但可以将其checkout到客户端后进行修改,将第二行改为SystemAuth=no,再commit到服务器CVSNT上,则就可以启用单一验证方式了。

注意:启用单一验证方式后原来的Windows系统用户将变为无效,因此要注意执行该步骤的时机。要保证passwd文件已存在且有用户了,否则无人可以登陆此库了,config文件也checkout不下来了,无法修改回去了。    有一个解决办法就是,从其他库的CVSROOT目录下找一个SystemAuth=yes的config文件,复制它,覆盖此库CVSROOT下的config文件。

 

config文件在建立库时自动生成 位于CVSROOT目录下,这里可以得出结论,对于不同的库,可以给不同的验证方式。所以,在每个库建立的时候要首先设定好这些前提。

 


2、 admin文件

设置systemAuth后,在cvsroot目录下建立admin文件,这个文件是保存CVSNT的管理员列表的文件,CVSNT根据这个文件来判断一个用户是否是管理员。

有些人喜欢直接在服务器的CVSROOT目录下新建admin文件,这样,如果你想从服务器checkout CVSROOT目录到本机,这个文件将不会被checkout出来。所以最好的办法是,从服务器checkout CVSROOT目录到本机后,再在本机客户端的cvsroot目录下新建一个admin文件,然后add,再commit到服务端,这样下次文件就可以checkout出来了!

在客户端创建admin文件:

先进入cvsroot目录下,再用命令:echo>>admin

该文件的内容很简单,形式如下:
User1
User2
User3 
每一行定义一个管理 员用户,默认时没有该文件,但你可以在客户端自己添加并add上去,再commit到CVSNT上,但是光有这个文件还是不会生效的,还要将其添加到 checklist文件中,使CVSNT能够读取该文件的内容在checkoutlist中添加文件列表的格式为:

[空格]文件名 出错信息

其中文件名前的空格必须要有的,不然会出错。
我们可以先添加admin文件到CVSNT中,再修改checklist文件commit,就可以使admin文件生效了。

Checkoutlist是维护的一个文件列表,可以放入系统自动build用户自定义的系统文件列表,注意:对passwd不生效!!

 



3、passwd文件

服务器工作在CVSNT用户单一验证方式下的时候,这个文件定义了CVSNT的用户信息,这里面保存着用户名,用户密码,以及别名信息。默认状态下 没有该文件,但是我们可以在CVSNT还工作在混合验证方式下时,用系统管理员登录,通过添加用户命令来让CVSNT自动建立一个passwd文件。

添加用户的命令的示例:

cvs passwd –r administrator –a cvsadmin

之后系统提示输入密码,输入后服务器会新建一个passwd文件。

该文件的内容很简单,形式如下:

cvsadmin:fqr1fS4gDghrt:administrator
kid:aTXRfS31Bm6JA
mystique:Yna4QcXz9dEqd

以第一行为例:cvsadmin为用户名,fqr1fS4gDghrt为CVS使用UNIX标准加密函数对密码进行加密后的结果,administrator为该用户的别名,当使用混合验证方式时对应Windows系统用户名。

注意:这个文件是不能在客户端进行修改的,不能checkout出来。

在服务器端建立了这个文件以后,就不用再手动进行修改了,当你在客户端进行密码或者用户的增加删除的时候,系统会自动进行这个文件的更新。这个文件是管理着CVSNT系统中的所有的用户,所以,要特别重视,不了解这个文件格式的,不要去随便修改,更加不要尝试在客户端进行修改

 


4、group文件

该文件用于定义CVSNT中的组信息,同组里的用户拥有一样的权限对组权限的修改操作和对用户权限的修改一样 (即cvs chacl groupname/username:r/w/c/n)。
有些人喜欢直接在服务器的CVSROOT目录下新建group,admin文件,这样,如果你想从服务器checkout CVSROOT目录到本机,这些文件将不会被checkout出来。所以最好的办法是在客户端新建group,admin文件,然后add,再commit。这样文件就可以checkout出来了!

在客户端创建group文件:

先进入cvsroot目录下,再用命令:echo>>group

group文件的内容为:

administrators:cvsadmin kid mystique
users:User1 User2 User3

可以看到该文件的内容也很简单,组名:用户名,多个用户名之间用空格隔开。

Group文件可以在客户端修改,不用修改checkoutlist这个文件,系统会自动使其生效。

作为组里面的特定成员还可以赋给特定的权限,权限分为两类c,w,rn(r:Read w:write c:control n:none) ,否定权限是有高的优先级的。

 

5、.perms文件

该文件存在于CVS repository中的每一个目录下。CVSNT通过该文件来控制用户对当前文件夹的权限。CVS用户权限:r|w|c|n (r:Read w:write c:control n:none)

例如:

default:n

admin:rwc

user:r

上面文件中第一行是指当前文件夹的默认权限为none(没有权限),admin用户/组的权限是rwc(读取、修改、创建),user用户/组的权限是r(读取)。

 


------------------------------------

了解了以上的内容后,接下来 说一下在不使用WinCVS的情况下 进行配置操作,即直接使用命令行。觉得这样思路更加清晰:

1、添加系统变量CVSROOT=E:/CVSNT/Repository,并把E:\CVSNT加入到系统Path路径。

2、进入命令提示符,因为此时为混合验证模式,可以不用不用登陆直接进行checkout。可以建立一个工作目录,在该目录下进行操作,我这里为E:/CVSNT/Works。

检出CVSROOT目录:

cvs co CVSROOT

3、添加CVSNT系统管理员用户,此时会提示设置用户密码:

cvs passwd –r administrator –a cvsadmin

4、修改CVSROOT访问权限:

([自]:也可以用此方法对要控制的某一文件夹进行权限的设置,即用命令:“cd 文件夹路径”进入此文件夹,然后对不同用户的权限进行修改与控制)

cd CVSROOT
cvs chown cvsadmin //更改所有者为cvsadmin
cvs chacl default:n //默认权限为n
cvs chacl cvsadmin:rwc //添加cvsadmin

5、修改config文件,按上面的方法修改后commit:

cvs ci

6、此时单一验证方式已经启用了,也就是只能使用刚才添加的cvsadmin进行登录,此时可以把CVSNT控制面板上的Use local users for pserver authentication instead of domain users关掉。登录前还要改一下系统变量CVSROOT,关闭命令提示符窗口,修改CVSROOT为:

:pserver:cvsadmin@192.168.0.1:4021/CVSNT/Repository

这里的192.168.0.1是服务器的IP地址,/CVSNT/Repository就是前面设置Repository时设置的Name,可以改为你机器上的配置。修改系统变量之后以下的步骤在任何与服务器相连的机器上进行,当然该机器上应该有CVSNT的可执行文件。

7、如果为了避免出现错误,先重启一下CVSNT服务器,再启动命令提示符来到E:/CVSNT/Works,因为已经启用单一验证方式,先要进行登录。

cvs login

输入密码,此时就是以cvsadmin登录了。

8、添加admin文件,首先将CVSROOT检出,在CVSROOT下新建admin文件,内容为

cvsadmin

执行命令:

cvs add admin
cvs ci

9、修改checklist文件,在该文件末尾添加一行:

[空格]admin error message

注意:admin前的空格不能少。

执行命令:

cvs ci

经过以上步骤,可以说用户配置已经基本完成了,CVSNT可以很好的工作在单一验证方式下。进一步的管理可使用以下命令:

添加用户: cvs passwd -a username,使用时不必理会需要添加别名的提示。

修改用户权限:cvs chacl username:r|w|c|n,(r:Read w:write c:control n:none)

要添加组管理,只需同添加admin步骤一样,按照格式要求新建group文件即可。


posted @ 2009-08-13 13:04  蟋蟀的草坪  阅读(1704)  评论(0编辑  收藏  举报