CVS服务器配置

CVSNT 配置

CVS是一个C/S系统,多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的。

先说下CVSNT的用户验证方式,CVSNT的用户验证方式分两种:Windows系统用户与CVSNT用户共存的混合验证方式,及CVSNT用户 单一验证方式,默认工作在混合验证方式下,当然使用单一验证方式对用户的管理肯定比较方便一点,因此下面的配置就是围绕该方式进行的。各个资源库所使用的 验证方式及用户配置由其目录下CVSROOT里的配置文件决定,其中有几个比较重要的文件: config、checkoutlist、admin、group、passwd等。其中,config,checkoutlist企CVSROOT原本有,admin, group文件要自己添加。

本人所用CVSNT版本為:2.5.03(Scorpio)Build 2382

了解了以上内容,下面我说一下我自己的配置步骤,我没有使用WinCVS进行操作,是直接使用命令行进行修改的,觉得这样思路比较清晰:

1、创建仓库:D:/cvs_server/cvstest,仓库名为:/cvs_server

2、进入命令提示符,因为此时为混合验证模式,直接用系统的administrator用户登陆。

命令:
set cvsroot=:pserver:administrator@localhost:/cvstest
cvs login
//输入密码

3、添加CVSNT系统管理员用户,此时会提示设置用户密码:
cvs passwd –r administrator –a cvsadmin
Adding user cvsadmin@localhost
New Password:(此输入密码)
Verify Password:(再次输入密码)

4、由于对于权限的配置都放在CVSROOT下,所以首先要检出服务器上的CVSROOT目录:
(此时还是以administrator用户操作,建议在本地盘上创建一个文件夹,用来存从CVS服务器上checkout文件,本人创建名为:D:/cvs_local)
cd cvs_local
cvs checkout CVSROOT

5、添加admin文件,首先将CVSROOT检出,在CVSROOT下新建admin(無後綴)文件,每
一行一个用户名,内容为:
cvsadmin

执行命令:
cd CVSROOT
cvs add admin
cvs ci

6、修改checkoutlist文件,在该文件末尾添加一行,内容为:
[空格]admin
注意:admin前的空格不能少。
执行命令:
cvs ci

7、修改CVSROOT访问权限:
cd CVSROOT
cvs chown cvsadmin //更改所有者为cvsadmin
cvs chacl –a none //設置目錄的存取权限为none
cvs chacl –u cvsadmin –a read,write,control //添加cvsadmin ,或 cvs chacl –u cvsadmin –a all
cvs commit


8、添加writers文件,控制仓库的write权限。在writers文件中加入要赋予write权限的用户。

writers文件内容如下:
[空格]cvsadmin
[空格]XXXX

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

执行命令:
cvs checkout CVSROOT
cd CVSROOT
cvs add writers
cvs ci

(注:如果用户a没有存在于writers文件中,则对cvs模块均没有写权限)


9、修改config文件,按上面的方法首先要從倉庫上check out出來,然後修改文件,修改后再

commit:

config文件是控制CVSNT的验证工作方式,注意该文件最前面的两行:
#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系统用户将变为无效,因此要注意执行该步骤的时机。

命令:

cvs checkout CVSROOT

cd CVSROOT

// 此时修改config文件

cvs ci


10、此时单一验证方式已经启用了,也就是只能使用刚才添加的cvsadmin进行登录,此时可以

把CVSNT控制面板上的Use local users for pserver authentication instead of domain users关掉。(登录前还要改一下系统变量CVSROOT,关闭命令提示符窗口,修改CVSROOT为:

:pserver:cvsadmin@localhost:4021/CVSNT/Repository ->此处可以不设置) (注:Repository

改为自己创建的仓库)


11、如果为了避免出现错误,先重启一下CVSNT服务器,因为已经启用单一验证方式,先要

进行登录。

命令:

Set cvsroot=:pserver:cvsadmin@localhost:/cvstest

cvs login

//提示输入密码

12、经过以上步骤,可以说用户配置已经基本完成了,CVSNT可以很好的工作在单一验证方式

下。进一步的管理可使用以下命令:
添加用户:

cvs –d D:/cvsproject/csbs passwd -a username //可能会提示添加别名的提示,可不用理会

或用:

set cvsroot=:pserver:localhost:/cvstest

cvs passwd –a username

提示输入密码:…

提示再次输入密码:….


要修改用户权限前前建议先查看一下当前的用户权限,然后再修改权限:

命令:

cvs lsacl //可查询当前的用户权限。


修改项目所对应用户的权限:

命令如下:

cvs chacl –u username –a r|w|c|n projectname(r:Read w:write c:control n:none)


cvs chacl [-R] [-r branch] [-u user] [-j branch] [-n] [-p priority] [-m message] [-a [no]{read|write|create|tag|control|all|none}[,...]] [-d] [file or directory...]



cvs rchacl [-R] [-r branch] [-u user] [-j branch] [-n] [-p priority] [-m message] [-a [no]{read|write|create|tag|control|all|none}[,...]] [-d] [file or directory...]


例: cvs chacl -R -a read,write -u user1

现在分别对这几个参数做一下说明:

read 读权限,write 写权限,create 创建目录的权限,tag 创建tag权限,control 控制权限,

all 所有权限,none 没有任何权限


需要说明的是,read|write|create|tag|control 之间没有权力大小之分。

对于create 只有创建目录的权限,如果目录下面有文件,你必须还要有write权限才行。

对于control 如果某用户对某目录有control权限,那么这个用户可以使用cvs chacl命令更改这个目录的权限。

对于all 如果某个用户对某个目录有all权限,那么这个用户将拥有所有权限。

对于tag 不需要有wirte权限也可以tag,但应该给其read权限。


cvs chacl -u g2 -a read,nowrite HelloWorld.java


上述命令赋予g2群组当前目录下HelloWorld.java文档的读权限,拒绝其写权限。


cvs chacl -R -u cvsuser2 -d .

上述命令取消cvsuser2 用户对当前目录对应的服务器目录的所有权限。

需要说明的是:CVS不仅可以对目录做权限控制,还能对文件做权限控制。


注意:这里是一个CVSNT 2.5.03 build 2382 bug

当进入被cvs checkout出来的项目客户端文件夹时,并且这时你并不是使用checkout所使用的帐户登录的,cvs会自动使你变更成为checkout时所使用的帐户。

危害描述:

可以借此漏洞夺得他人帐号控制权,甚至最高管理员权限。

解决方法:

在使用时请勿在他人的计算机上使用自己的帐号checkout项目,尤其是管理员帐号。


总结:每次执行一个用户的权限更新都会累加或者覆盖(操作同一用户的时候)其以前的所有的权限的配置。


13、如果要对包含子目录也要同样的操作刚要加参数-R(-r不行)
命令:

cvs chacl -R -a none


14、删除用户username

[命令]

cvs passwd -X username(X为大写)


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

group文件定义CVSNT中组信息,同组里的用户拥有一样的权限,对组权限的修改和对用户权限的修改一样。[此文件也不在CVSNT里,要自己添加]
group文件的内容为:

csbsWeb:user1 user2 user3

csbsCRM:user4 user5 user6

csbsOPTS:user7,user8,user9

注:user1, user2 and user3 企同一個組,該組為 “csbsWeb”,而user4, user5 ,user6企“csbsCRM”組中.
可以看到该文件的内容也很简单,格式:组名:用户名1,用戶名2…

多个用户名之间用空格隔开。
Group文件可以在客户端修改,不用修改checkoutlist这个文件,系统会自动使其生效。
作为组里面的特定成员可以赋给特定的权限。

例子:對於項目csbsOPTS權限控制。

命令:

cvs checkout csbsOPTS // checkout 項目csbsOPTS

cvs lsacl csbsOPTS // 查看項目的所受權限控制

cvs chacl –a none csbsOPTS // 設置default為none。

cvs chacl –R –u csbsOPTS –a all csbsOPTS // 設置項目csbsOPTS為用戶組csbsOPTS所控制

cd csbsOPTS

cvs ci // 提交

此時,只用用戶組csbsOPTS的用戶及admin用戶能對項目csbsOPTS控制操作。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值