CVS用户配置

先 说下CVSNT的用户验证方式,CVSNT的用户验证方式分两种:Windows系统用户与CVSNT用户共存的混合验证方式,及CVSNT用户单一验证 方式,默认工作在混合验证方式下,当然使用单一验证方式对用户的管理肯定比较方便一点,因此下面的配置就是围绕该方式进行的。各个资源库所使用的验证方式 及用户配置由其目录下CVSROOT里的配置文件决定,其中有几个比较重要的文件。 1、config文件(TortoiseCVS取出修改)

控制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用户来进行验证。

该文件可以在客户端进行修改,因此我们可以将其checkout出来将第二行改为SystemAuth=no,并commit到CVSNT上就可以启用单一验证方式了,注意启用单一验证方式后原来的Windows系统用户将变为无效,因此要注意执行该步骤的时机。

2、 admin文件(TortoiseCVS添加)

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

[空格]文件名 出错信息

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

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的系统用户名),当使用混合验证方式时对应Windows系统用户名。

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

4、group文件(TortoiseCVS添加)

该文件定义CVSNT中组信息,同组里的用户拥有一样的权限,对组权限的修改和对用户权限的修改一样。

group文件的内容为

administrators:cvsadmin kid mystique
users:User1 User2 User3

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

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

作为组里面的特定成员可以赋给特定的权限。


在最后才用TortoiseCVS修改的内容提交到服务器

CVS配置权限的命令

# CVSNT 2.0.51

# set CVSROOT = :pserver:<NTAdmin>:<NTAdminPassword>@<ServerIP/ServerName>:/<RepoName>

set CVSROOT=:pserver:administrator:[email protected]:/CVSRoot

# else you will see:

cvs passwd: No CVSROOT specified! Please use the `-d' option
cvs [passwd aborted]: or set the CVSROOT environment variable.

# cvs passwd -a <NTUser>

cvs passwd -a wjj

cvs passwd -a stephen

# list users and passwords(encrypted)
notepad F:\CVSRoot\CVSROOT\passwd

# change read/write/none perms
# CVSTest is a module name
notepad F:\CVSRoot\CVSTest\.perms

# default:
default:rwc

# modified:
default:n
wjj:rwc
stephen:r

# CVS用户权限:r|w|c|n (r:Read w:write c:create n:none)

# list modules in cvs
cvs ls

# check permissions on server

F:
md cvsout
cd cvsout
cvs checkout CVSTest
cd CVSTest
cvs lsacl

# list below:
Directory: .
Owner: wjj
default:rwc

# change permissions by command line

F:\CVSsrc\CVSTest>cvs chacl -R default:n

F:\CVSsrc\CVSTest>cvs chacl -R wjj:rwc

F:\CVSsrc\CVSTest>cvs chacl -R stephen:rw

# then view F:\CVSRoot\CVSTest\.perms , it changed as below:
default:n
wjj:rwc
stephen:rw

# stephen cannot add Test2.java into CVSTest/src/org.stephencat.test/ in eclipse:
The server reported an error while performing the "cvs add" command.
CVSTestSte: cvs [server aborted]: User 'stephen' cannot change /CVSRoot/CVSTest/src/org/stephencat/test

# but stephen can modify Test1.java already exists in CVSTest/src/ort.stephencat.test/

删除用户【testuser】:cvs passwd -X testuser回车,OK,完成。

绑定【testuser】到【administrator】:cvs passwd -r administrator testuser回车,设置密码,OK,完成。

猜你喜欢

转载自guocc.iteye.com/blog/613395
cvs
今日推荐