软件适航加油站

 找回密码
 成为会员
搜索
查看: 10788|回复: 0

安装和使用CVS(2)

[复制链接]
qfwind2003 发表于 2009-7-2 15:13:16 | 显示全部楼层 |阅读模式
六、管理cvs服务器

管理 cvs 服务器.服务器可以用了,现在大家最关心的就是如何管理服务器,比如,我想让一些人有读和/或写 CVS 仓库的权限,但是不想给它系统权限怎么办呢?不难,cvs初始化结束以后,在管理员用户(这里是cvs用户)的主目录里有一个 CVSROOT 目录,这个目录里有三个配置文件:passwd, readers, writers。我们可以通过设置这三个文件来配置 CVS 服务器,下面分别介绍这几个文件的作用:

passwd:cvs 用户的用户列表文件,它的格式很象 shadow 文件:

{cvs 用户名}:[加密的口令]:[等效系统用户名]

如果你希望一个用户只是 cvs 用户,而不是系统用户,那么你就要设置这个文件,刚刚安装完之后这个文件可能不存在,你需要以cvs管理员身份(su cvs)用户手工创建,当然要按照上面格式;

第二个字段是该用户的加密口令,就是用 crypt (3) 加密的,你可以自己写一个程序来做加密,也可以用两个偷懒的方法:先创建一个系统用户,名字和 cvs 用户一样,口令就是准备给它的 cvs 用户口令,创建完之后从 /etc/shadow 把该用户第二个字段拷贝过来,然后 再把这个用户删除.这个方法对付数量少的用户比较方便,人一多就不合适了,而且还有冲突条件(race condition)的安全隐患,还要 root 权限,实在不怎么样,不过权益之计而已;另外一个方法就是利用apche的htpasswd命令创建passwd用户,添加用户只需要htpasswd passwd username即可添加用户到passwd文件中,不过需要在文件中对应行的最后添加一个":"冒号和对应的等效系统用户名;最好的就是自己编写一个程序了来生成这个passwd文件了。

第三个字段就是等效系统用户名,实际上就是赋与一个 cvs 用户一个等效的系统用户的权限,看下面的例子你就明白它的功能了。

readers:有 cvs 读权限的用户列表文件,就是一个一维列表。在这个文件中的用户对 cvs

只有读权限。

writers:有 cvs 写权限的用户的列表文件,和 readers 一样,是一个一维列表。在这个文件中的用户对 cvs 有写权限。

上面三个文件在缺省安装的时候可能都不存在,需要我们自己创建,好吧,现在还是让我们用一个例子来教学吧.假设我们有下面几个用户需要使用 cvs:

cvsuser1, cvsuser2, henry, betty, anonymous

其中 laser 和 gumpwu 是系统用户,而henry, betty, anonymous 我们都不想给系统用户权限,并且 betty 和 anonymous 都是只读用户,而且 anonymous 更是连口令都没有。

然后编辑 cvs 管理员家目录里 CVSROOT/passwd 文件,加入下面几行:

laserxxefajfka;faffa33:cvspub

gumpwuajfaal;323r0ofeeanv:cvspub

henryfajkdpaieje:cvspub

betty:fjkal;ffjieinfn/:cvspub

anonymous::cvspub

注意:上面的第二个字段(分隔符为 :)是密文口令,你要用程序或者用我的土办法生成。

编辑 readers 文件,加入下面几行:

anonymous

betty

编辑 writer 文件,加入下面几行:

laser

gumpwu

henry

这样就 ok 了,你再用几个用户分别登陆测试,就会发现一切都 ok 了。这里面的原理和说明我想就不多说了,其实很简单,和系统管理用户的概念是一样的。
七、建立新的CVS项目
   一般我们都已经有一个或多个项目了,这样我们可以用下面步骤生成一个新的CVS项目。 将一个工程文件置于CVs中进行版本控制,在CVS 术语中称作导入(import)。从名字上就可以看出,在导入前需要为此作些准备工作。 输入操作的基本要求是有个"干净"的目录结构。"干净"的意思是不需要版本控制的文件都被移走了(如编译生成的文件,备份文件等等)。如果工程已经开始一段时间了,这就显得很重要。在目录中也许有些是不打算将其置于版本控制下的文件,但是又想将他们放在这里,这种情况下,你要在输入之前将它们移走,然后再移回来。
  注意的是CVS 认为空目录是不存在的。如果想增加一个既不包含文件又不包含子目录的目录,需要在其下创建一个哑文件。建议你创建一个名为 README.txt 的文件,其内容为对目录的简要说明。 进入到已有项目的目录,比如叫 cvstest: $cd cvstest 运行命令将项目文件导入到cvs仓库中: $cvs import -m "this is a cvstest project" cvstest v_0_0_1 start 说明:import 是cvs的命令之一,表示向cvs仓库输入项目文件. -m参数后面的字串是描述文本,对项目进行描述,如果不加 -m 参数,那么cvs会自动运行一个编辑器(一般是vi,但是可以通过修改环境变量EDITOR来改成你喜欢用的编辑器)让你输入信息,cvstest 是项目名称(实际上是仓库名,在CVS服务器上会存储在以这个名字命名的仓库里) v_0_0_1是这个分支的总标记.没啥用(或曰不常用) start 是每次 import 标识文件的输入层次的标记,没啥用。 这样我们就建立了一个CVS仓库了,然后,我们可以把这个测试项目的文件删除,试验如何从仓库获取文件这会在后面的客户端文章进行说明。 在Win2k上安装和使用CVS 1.准备有关软件: 从 www.cvsnt.org 下载服务器 cvs-1.10.8NT.exe.zip 从 www.wincvs.org 下载客户端 WinCvs11b16.zip 用winzip把cvs-1.10.8NT.exe.zip解压到d:cvs。 解压并安装wincvs. 2.把路径 d:cvs 加到path环境变量中。
具体方法:
1 点选"我的电脑",单击右键
2.选属性,点环境变量按钮。
3.建立CVS存储目录。 打开一个dos窗口,键入"cvs -d :local:d:cvsroot init",然后你会发现d:cvs下面多了一个root子目录。
4.注册CVS服务 在dos窗口中,键入"ntservice -i d:cvsroot",屏幕显示"CVS NT Service Installed successfully",打开控制面板中的服务,你会发现多了一个"CVS NT Service"服务 用"net start cvs"启动cvs服务。 用"net stop cvs"关闭cvs服务。
5.设置密码 新建一个空白的passwd文件,放到d:cvsrootcvsroot目录下。用pwgen.exe生成密码。把用户名和密码写到passwd文件,例如:test:OuIgxgsUZH48g
6.使用wincvs 选Admin->erferences,设CVSROOT为":pserver:test@server:d:cvsroot",server为作为服务器的计算机的名称。test为用户名。
7.登陆 选Admin->login,输入密码登陆。
8.导入模块 假设要管理的代码已经存在于c:source目录,选弹出菜单上的import module,选择目录c:source,输入模块名"test",wincvs就会把该目录导入到模块test中。
9.导出模块 选Create->checkout module,输入模块名和相应的目录就可以了。
10.修改文件 选中要修改的文件,点修改钮(笔图标)。然后修改文件,最后选弹出菜单上的commit selection,修改就被提交了。 CVS NT服务器安装指南 下载地址:http://www.cvsnt.org 运行 cvsnt_1.11.1.2.exe 点两次“Next”跳过“Welcome”界面开始安装 点“Yes”接受License 点“Next”用默认的Typical安装 选“Yes”并点“Finish”,重新启动 到桌面,在“我的电脑”按右键,点“属性” 点“高级”,点“环境变量” 选择“系统变量”中的Path,点“编辑” 在变量值后加“;Crogram FilesCVS for NT”(引号不要加入) 点“确定” 再“确定” 进入控制面板,双击“CVS for NT” 点“Install”安装CVSNT服务 Install按钮会变无效,Uninstall变有效 点“Add”,输入“d:cvsroot”,点“OK” 会提问是否创建目录,回答“是” 点“Start”启动CVSNT服务 在d:cvsrootCVSROOT目录下创建一个文件名为passwd的文件(没有扩展名) (怎么创建没有扩展名的文件: 点资源管理器菜单“工具”->“文件夹选项” 点“文件类型” 找到并选中“TXT 文本文档”,点“高级” 选中“始终显示扩展名”,点“确定”,然后“关闭”) 在d:cvsrootCVSRTOO下新建文本文件 编辑该文件,把下面三行 user1:user1encryptedpassword (加密密码是用CVSNT带的工具“Generate Passwords”生成的,安装后菜单里有)
user2:user2encryptedpassword user3:user3encryptedpassword 加入,保存退出,然后把该文件改名为passwd(把扩展名去掉) 加3个Windows用户 user1密码同上面设的 user2密码同上面设的 user3密码同上面设的 安装wincvs(下载地址:http://www.cvsgui.org)后运行wincvs 点“Admin”->references CVSROOT 改为 user1@myservername:d:cvsroot Authentication 选择 "passwd" file on the cvs server Use vesion 选择 cvs 1.10 (Standard) 然后“Admin”->“Login”,成功的返回码为0 然后可以Import一个module 然后可以checkout这个module,如果checkout到同一个目录,要把原来的目录改名或删除 点Create->Checkout module module name 填 mymodulename Local folder如 d:user1 在Globals页里面把 Checkout read-only 不选中 其它的不管,点“确定”即可 checkout之前如果没有login,必须先login一次,除非工作目录,否则不需要重新login
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

小黑屋|Archiver|手机版|软件适航加油站 ( 沪ICP备13019901号-3 )

GMT+8, 2018-6-25 08:09 , Processed in 0.140400 second(s), 16 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表