服务器

位置:IT落伍者 >> 服务器 >> 浏览文章

windows下cvs服务器端配置


发布日期:2019年11月19日
 
windows下cvs服务器端配置

CVS是目前最常用的版本控制和软件配置系统其开源性在其普及的过程中功不可没然而正因为开源造成了其易用性较差往往一个功能需要通过几个看似不相干的操作配合才能进行Windows下CVS的多帐户配置正是这样一个相当重要的但很不好操作的功能几个难点如下

CVS源自Unix系统其Windows的移植版并没有服务器功能在Windows下一般采用安装CVSNT这个软件来建立CVS Repository但CVSNT的操作方法和原始的CVS略微不同

CVS本身是命令行形式其配置过程比较繁杂

CVS的多帐户配置需要手动修改Repository的CVSROOT文件夹里的文件缺乏统一的界面

在安装了CVSNT服务器之后默认的用户就是建立Repository的Windows系统的登陆帐户但在多人开发的时候肯定没人希望大家都使用同一个名字来Commit更重要的是我们可能需要配置开发人员的权限例如限制某些人只能看程序而某些人可以Commit程序某些人可以添加新的Module以下是详细的步骤环境是CVSNT (Build ) + TortoiseCVS

使用CVSNT建立一个Repository假设初始使用Windows的管理员administrator密码登陆Repository使用Pserver协议IP是端口号是Repository名称是/TestRep密码是这时的administrator也是此Repository的管理员

为了进行多用户配置必须修改Repository的CVSROOT目录的几个文件首先在客户端将:pserver:administrator@/TestRep设为CVSROOT环境变量(请注意区分CVSROOT目录和CVSROOT环境变量)然后用administrator登陆到CVS最后Check Out出此CVSROOT目录命令如下所示

cvs login

//输入密码

cvs co CVSROOT

在服务器端为Windows添加一个专门用于CVS操作的Windows帐户所有的CVS帐户都要映射到这个Windows帐户上进行实际的操作虽然很多资料并没有提到需要建立Windows帐户但我在实验中发现没有这种帐户CVS在后边执行任何操作时都会报告没有此帐户的错误假如这个新的帐户叫做cvsuser使用Windows命令

net user cvsuser cvsuserpassword /Add

可以添加此帐户在添加完成之后一定要记得将/TestRep在服务器上的实际文件夹的权限里添加cvsuser的读写权限否则到最后任何映射到cvsuser的CVS帐户都会因为没有写权限无法进行正常的commit操作首先在服务器上的资源管理器里的工具菜单里找到文件夹选项在随后出现的查看选项卡里找到使用简单文件夹共享的项目取消掉前面的勾单击确定然后右击/TestRep所在文件夹单击属性在随后打开的对话框里可以看到安全选项卡我们需要在这里添加cvsuser的读写权限

为CVS添加自己的帐户通过使用命令cvs passwd我们可以添加任意多个CVS帐户(当然只是针对当前的Repository)所有的帐户信息会被保存在CVSROOT目录的passwd文件当中然而这个文件是不能Check Out出来的只能在服务器那里看到它并且其保存的密码信息是被加过密的我们可以添加cvsadminuseruseranonymous等用户例如添加cvsadmin时的命令是

cvs passwd a r cvsuser cvsadmin

//输入cvsadmin的密码

//再次输入cvsadmin的密码

这样就新添了cvsadmin帐户并将其映射到Windows帐户cvsuser上(a表示添加一个账户r表示影射到操作系统的帐户中我期望将cvsadmin作为以后/TestRep的管理员这一点十分重要如果这时候不设置的话再将CVS改为仅使用CVS帐户校验模式之后就再也没有机会添加管理员了(因为只有管理员可以看得到和操作CVSROOT目录)

设定cvsadmin为CVS管理员在客户端的CVSROOT目录下新添一个名为admin的文件在里面将每一个想要升为管理员的CVS帐户的帐户名写到文件中每行一个帐户名当然admin文件只有放到服务器cvsadmin的升迁才能生效但是仅仅是这么将admin文件提交上去是不能起作用的在提交它之前必须将admin的信息添加到checkoutlist文件中checkoutlist的格式在文件中有介绍空格 文件名 空格 出错信息 回车符我们在里面添加一条记录

admin adminerror

特别注意admin前面一定要留一个空格

当新的CVS管理员和帐户信息都准备好后就要将/TestRep的帐户校验模式从操作系统集成校验模式修改为仅使用CVS帐户校验模式这么做可以避免为了在CVS中使用多用户时需要操作Windows帐户的麻烦这个设置的地方在CVSROOT目录中的config文件打开客户端的config文件将里面的#SystemAuth=yes改为SystemAuth=no(注意将#删除后SystemAuth前不能有空格)修改后保存config文件

提交CVSROOT里的所有更新到服务器我们的设置就生效了命令如下所示

cd CVSROOT

cvs add m admin

cvs commit m

不过在提交之前你也许想先把CVSROOT的owner从原来的administrator修改为cvsadmin使用命令cvs chown可以做到这一点在提交了CVSROOT目录后校验模式就立刻改变了cvsadmin也同时开始生效这时用之前的administrator就无法使用CVS了我们改用cvsadmin帐户重新登陆继续下面的操作

修改读写权限CVS有两种读写权限的设置方法一是粗粒度的一是细粒度的只有CVS管理员才能进行访问权限的修改粗粒度的方法是在CVSROOT中添加readers或者writers文件来实现在readers里添加的任何一个帐户对当前库只拥有读取权限添加格式是每行一个帐户名例如我们在客户端的CVSROOT目录里添加readers文件将之前的一个新建帐户anonymous放到里面然后commit这个readers文件到服务器anonymous就不能进行commit了实际的测试结果是在使用anonymous登陆之后执行commit指令系统会报告正常执行完毕但实际上没有任何东西被commit暴露了CVS在人机界面上的不完善writers文件的操作readers完全一样如果一个帐户名被同时写到两个文件里此帐户只有只读权限细粒度的方法是使用chacl命令例如/TestRep里有个工程projectprojectproject使用命令

cvs chacl u user a none d projectprojectproject

cvs chacl u user a all d project

cvs chacl u user a readwrite d project

cvs chacl u user a read d project

可以让user拥有对project目录的完全控制权对project目录的读写权和对project目录的只读权第一条命令首先删除user的所有权限在随后的条命令里分别设置了个不同目录权限

使用帐户组来组织帐户在客户端的CVSROOT目录下添加一个叫group的文件此文件的格式是

组名:用户名用户名用户名……

组名:用户名用户名……

……

修改完group文件后commit它然后通过chacl命令可以实现组权限的修改

上一篇:详析邮件服务器邮件存储和日志

下一篇:局域网NAT服务器组建全攻略