December 28 2005
摘要
CVS作为经久不衰的版本控制工具有着辉煌的历史和完备而详尽的文档资料。美中不足的是绝大部分文档介绍的是UNIX下面的配置方法。包括作为Windows服务器版本的CVSNT也无处不渗透着UNIX的痕迹。对于普通程序员来讲常用的却是Windows系列操作系统而非UNIX。虽然CVSNT也有大量的资料讲述起配置过程,但是这些文档大多都追求“完美”――事无巨细、篇幅较长,以至于生手很难迅速切入正题。那么如何在Windows环境下简单便捷地配置基于CVSNT的项目级访问控制呢?这正是本文所关注的问题。
1. 建系统用户cvsowner
在Windows的计算机管理器中创建专门服务于CVS的系统用户――cvsowner。然后设置cvsowner对CVS库(repository)的完全控制访问权限。若CVS库所在文件系统是FAT32或者FAT16而非NTFS则跳过本步骤继续执行。因为此时cvsowner已经具备了对库德完全控制访问权限。具体步骤以Windows XP为例:在CVS库目录的属性窗口中选择“安全”选项卡 ,在用户和组列表中加入cvsowner。选中cvsowner并在权限列表中选择“完全控制(Full Controll)”。
|
找不到“安全”选项卡? |
请打开任何目录,然后选择工具(Tools)菜单下面的文件夹选项(Folder options)命令。在打开的配置窗口中选择查看(View)选项卡。在“高级设置”中将“使用简单文件共享(Use simple file share(Recommanded))”前面的勾去掉。然后继续上面的操作。 |
2. 关闭使用系统认证配置
在cvs配置文件(config)中设置“SystemAuth=no”。config文件在CVSROOT目录下。
3. 创建cvs用户
使用“cvs passwd -a james -r cvsowner”命令创建cvs用户。将所有用户所对应的系统用户均设置为cvsowner。
|
关于cvs命令 |
此处以及下文出现的cvs命令均是指CVSNT提供的cvs.exe命令。另外在未连接网络的情况下,执行cvs的任何命令时都有可能一直处于等待状态而没有任何响应。 |
4. 创建cvs用户组
在CVSROOT目录下,编辑admin和group文件(若这两个文件尚不存在则创建)。将所有的管理员放在admin文件中。为每个项目定义一个组,并以“组:成员列表”的格式方式放在group文件中。成员列表中的成员以空格分开。
5. 设置缺省访问控制列表
执行“cvs rchacl -a none .”命令,将所有人员对cvs的缺省访问权限设置为“禁止访问”;执行“cvs rchacl -a all -u administrator -p 1000 .”命令,将管理员对cvs的缺省访问权限设置为“完全控制”,且优先级为1000。CVSNT自动计算出来的访问控制优先级为100。所以优先级低于100的访问控制将得不到期望的结果。
6. 为每个项目设置访问控制列表
执行“cvs rchacl -a all -u projectgrp1 -p 500 project1”命令,将projectgrp1用户组对project1模块的访问权限设置为“完全控制”。执行“cvs rchacl -a all -u projectgrp2 -p 500 project2”命令,将projectgrp2用户组对project2模块的访问权限设置为“完全控制”。其他项目的权限设置以此类推。
james...@gmail.com
http://spaces.msn.com/members/jameschancn
http://groups.google.com/group/programmercafe
CVSNT环境下的项目级访问控制
Mr . James Chan
CVS作为经久不衰的版本控制工具有着辉煌的历史和完备而详尽的文档资料。美中不足的是绝大部分文档介绍的是UNIX下面的配置方法。包括作为Windows服务器版本的 CVSNT也无处不渗透着UNIX的痕迹。对于普通程序员来讲常用的却是Windows系列操作系统而非UNIX。虽然CVSNT也有大量的资料讲述起配置过程,但是这些文档大多都追求"完美 "――事无巨细、篇幅较长,以至于生手很难迅速切入正题。那么如何在Windows环境下简单便捷地配置基于CVSNT的项目级访问控制呢?这正是本文所关注的问题。
1. 建系统用户 cvsowner
在Windows的计算机管理器中创建专门服务于CVS的系统用户――cvsowner。然后设置cvsowner 对CVS库(repository)的完全控制访问权限。若CVS库所在文件系统是FAT32或者FAT16而非NTFS则跳过本步骤继续执行。因为此时 cvsowner已经具备了对库德完全控制访问权限。具体步骤以Windows XP为例:在CVS库目录的属性窗口中选择"安全"选项卡 ,在用户和组列表中加入cvsowner。选中 cvsowner并在权限列表中选择"完全控制(Full Controll)"。
![]()
找不到"安全" 选项卡?
请打开任何目录,然后选择工具(Tools)菜单下面的文件夹选项(Folder options)命令。在打开的配置窗口中选择查看(View)选项卡。在 "高级设置"中将"使用简单文件共享(Use simple file share(Recommanded))"前面的勾去掉。然后继续上面的操作。
2. 关闭使用系统认证配置
在cvs配置文件(config)中设置"SystemAuth=no"。config文件在 CVSROOT目录下。
3. 创建 cvs用户
使用"cvs passwd -a james -r cvsowner"命令创建 cvs用户。将所有用户所对应的系统用户均设置为cvsowner。
![]()
关于cvs命令
此处以及下文出现的cvs命令均是指CVSNT提供的cvs.exe命令。另外在未连接网络的情况下,执行cvs的任何命令时都有可能一直处于等待状态而没有任何响应。
4. 创建 cvs用户组
在CVSROOT目录下,编辑admin和group文件(若这两个文件尚不存在则创建)。将所有的管理员放在 admin文件中。为每个项目定义一个组,并以"组:成员列表"的格式方式放在group文件中。成员列表中的成员以空格分开。
5. 设置缺省访问控制列表
执行"cvs rchacl -a none ."命令,将所有人员对cvs 的缺省访问权限设置为"禁止访问";执行"cvs rchacl -a all -u administrator -p 1000 ."命令,将管理员对cvs 的缺省访问权限设置为"完全控制",且优先级为1000。CVSNT自动计算出来的访问控制优先级为100。所以优先级低于100的访问控制将得不到期望的结果。