`
宋科明
  • 浏览: 99540 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

关于CVS在Window2000下的权限管理

阅读更多

一.   CVS版本问题

CVS分开客户端和服务器端两个程序,服务器端在Windows平台下用CVSNT,目前这个软件基本稳定,但速度和在Linux/Unix下相比,稍微慢些。但对于熟悉Windows应用程序的人来说,由于其操作简单,不失为一个好的选择。

 

 

注意:客户端和服务器端两方面的版本统一十分重要。本文挡建议使用:

服务器:CVSNT2.0.34  www.cvsnt.org下载文件cvsnt-2.0.34.exe

客户端:WinCvs13b17.zip sourceforge.net/projects/cvsgui/ 下载WinCvs13b17.zip

检查的方法可以在成功连接后,运行:

cvs version

 

***** CVS exited normally with code 0 *****

 

Client: Concurrent Versions System (CVSNT) 2.0.34 (client/server)

 

Server: Concurrent Versions System (CVSNT) 2.0.34 (client/server)

 

可见这两个软件的版本十分搭配的。如果版本不一致的时候,会发生客户端的命令服务器解释不了的情况。

或者在服务器端,开始->设置->控制面版打开CVSNT的配置文件,也可以看到服务器端的版本(如下图):

 

在客户端,在DOS状态下,去到C:\Program Files\GNU\WinCvs 1.3\CVSNT(缺省安装的目录)下输入命令cvs version,可以看到客户端的版本信息(如下图):

 

另外,由于WinCVS1.3自带了一些方便管理的宏(当然,以后也可以参照这些宏自己开发一些),可以在C:\Program Files\GNU\Wincvs 1.3\Macros看到一堆*.py*.tcl的文件,这些实际上是PythonTcl的脚本文件,建议也安装上PythonTclWindows版本,以运行这些脚本或者以后自己扩展参照这些宏写些适合自己的工具。

安装了这两个编译程序后,在WinCVS1.3可以方便切换这两种脚本语言(如下图):

 

二.   CVS的权限管理

CVS有自己的一套权限管理规则,但只能够去到目录的级别。通过CVS的管理员和目录的所有者可以设置相应目录下的权限。在每个CVS的目录下面(服务器端)可以找到一个.owner.perms的文件,这两个文件分别记录了目录所有者和相应设置的权限。

值得注意的是,CVS的权限管理是十分简单意义上的管理,只能够去到目录的一级,每个目录下面对应有相应的.owner.perms文件来具体管理当前目录的权限,如果没有这些文件,权限由上一级的目录继承下来。但它设置的权限只限于CVS内部,最终还是要受系统权限来控制的。例如即使对某个目录明明.owner里面已经记录了某个用户了,但在服务器系统端中限定了这个用户对这个目录的读权限,这个用户仍然不可以checkout到这个目录的。

因此,CVS的权限管理比系统的权限管理弱,可以看作是系统权限管理下的一个适当简单的补充。当不想建立太多的系统用户,而想用适当少的系统用户来影射出比较多的CVS用户的时候,CVS的权限管理才起到应有的作用。这时候需要管理员或者目录所有者对每个目录运行cvs chacl来定义用户的权限。

 

 

三.   CVSWindow2000下版本控制

由于Window2000的权限管理功能已经十分丰富了,如果在不介意系统用户太多的情况下,建议在Windows平台下(指服务器端)使用CVS还是用回系统用户来设置。

适当地建立组,可以利用Window2000丰富的权限管理,将不同的用户通过组的定义来实现权限的交叉管理。

具体的建议实施方案如下:

1.  在系统中建立一个cvsadmin的用户,属于Administrators组。

以后CVS系统的管理工作都通过这个用户来做。

2.  CVSNT中增加新的Repository,例如是C:\CVSFiles,然后自动会在C:\CVSFiles下面产生一个CVSROOT的目录。

3.  CVSFiles进行权限控制,设成只可以Administrators组进行完全控制,将原来的everyone缺省设置去掉(如下图):

 

这样做的好处是由于Window2000缺省权限管理是子目录权限继承于父目录的,如果不将everyone去掉,以后一般用户就比较容易任意添加不是和项目相关的文件进入这个目录了。

4.  在系统中建立一个组和这个项目相关的,例如是Team1

5.  建立相关的用户,设置成一般用户(users),并归到Team1组。例如user1user2

6.  此时看CVSROOT的权限可以看到,由于从父目录继承,它只可以由Administrators组的成员来完全控制。

注意:要将CVSROOT设成对一般用户(这里是将Team1组加入读权限)只读,否则一般CVS用户不可以checkout东西。将CVSROOT下的history文件设成Team1完全控制。

 

7.  此时user1,user2均可以登录,但是不可以checkoutCVSROOT的内容。

cvs -z9 checkout CVSROOT

 

***** CVS exited normally with code 1 *****

 

cvs [server aborted]: Cannot access C:/CVSFiles/CVSROOT: Permission denied

 

增加内容也不可以:

cvs import -m "test1" Test VENDOR START

 

***** CVS exited normally with code 1 *****

 

 

 

cvs [server aborted]: Cannot access C:/CVSFiles/CVSROOT: Permission denied

 

因此导入模块的工作还是通过cvsadmin统一来做的。

例如导入了模块test1

8.  对上面新导入的模块test1user1user2还是不可以checkout的,需要利用Window权限管理增加权限给他们。例如他们只可以读出这个模块(如下图):

 

此时user1user2都可以checkout这个目录,但都不可以修改这个目录。

9.如果针对下面的test2dir附了写的权限给user1(如下图),则user1就可以修改这个子目录了。

 

10.下面这个树状图是这个演示的权限结构图。

\---test1    team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir user2可以修改)

    |       Test11.txt

    |

    \---test2dir user1可以修改)

test2dir1.txt

10.下面这个树状图是这个演示的权限结构图。

\---test1    team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir user2可以修改)

    |       Test11.txt

    |

    \---test2dir user1可以修改)

test2dir1.txt

此时user1user2都可以checkout这个目录,但都不可以修改这个目录。

9.如果针对下面的test2dir附了写的权限给user1(如下图),则user1就可以修改这个子目录了。

 

10.下面这个树状图是这个演示的权限结构图。

\---test1    team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir user2可以修改)

    |       Test11.txt

    |

    \---test2dir user1可以修改)

test2dir1.txt

10.下面这个树状图是这个演示的权限结构图。

\---test1    team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir user2可以修改)

    |       Test11.txt

    |

    \---test2dir user1可以修改)

test2dir1.txt

 

 

 

 

 

 

 

 

这样做的好处是由于Window2000缺省权限管理是子目录权限继承于父目录的,如果不将everyone去掉,以后一般用户就比较容易任意添加不是和项目相关的文件进入这个目录了。

4.  在系统中建立一个组和这个项目相关的,例如是Team1

5.  建立相关的用户,设置成一般用户(users),并归到Team1组。例如user1user2

6.  此时看CVSROOT的权限可以看到,由于从父目录继承,它只可以由Administrators组的成员来完全控制。

注意:要将CVSROOT设成对一般用户(这里是将Team1组加入读权限)只读,否则一般CVS用户不可以checkout东西。将CVSROOT下的history文件设成Team1完全控制。

 

7.  此时user1,user2均可以登录,但是不可以checkoutCVSROOT的内容。

cvs -z9 checkout CVSROOT

 

***** CVS exited normally with code 1 *****

 

cvs [server aborted]: Cannot access C:/CVSFiles/CVSROOT: Permission denied

 

增加内容也不可以:

cvs import -m "test1" Test VENDOR START

 

***** CVS exited normally with code 1 *****

 

 

 

cvs [server aborted]: Cannot access C:/CVSFiles/CVSROOT: Permission denied

 

因此导入模块的工作还是通过cvsadmin统一来做的。

例如导入了模块test1

8.  对上面新导入的模块test1user1user2还是不可以checkout的,需要利用Window权限管理增加权限给他们。例如他们只可以读出这个模块(如下图):

 

此时user1user2都可以checkout这个目录,但都不可以修改这个目录。

9.如果针对下面的test2dir附了写的权限给user1(如下图),则user1就可以修改这个子目录了。

 

10.下面这个树状图是这个演示的权限结构图。

\---test1    team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir user2可以修改)

    |       Test11.txt

    |

    \---test2dir user1可以修改)

test2dir1.txt

10.下面这个树状图是这个演示的权限结构图。

\---test1    team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir user2可以修改)

    |       Test11.txt

    |

    \---test2dir user1可以修改)

test2dir1.txt

此时user1user2都可以checkout这个目录,但都不可以修改这个目录。

9.如果针对下面的test2dir附了写的权限给user1(如下图),则user1就可以修改这个子目录了。

 

10.下面这个树状图是这个演示的权限结构图。

\---test1    team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir user2可以修改)

    |       Test11.txt

    |

    \---test2dir user1可以修改)

test2dir1.txt

10.下面这个树状图是这个演示的权限结构图。

\---test1    team1只读)

    |   test1.txt

    |   test2.txt

    |

    +---TestDir user2可以修改)

    |       Test11.txt

    |

    \---test2dir user1可以修改)

test2dir1.txt

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    Cvs用户分组及权限设置工具

    1.1 目的 通过操作手册使用户能对CVS设置工具的功能和...通过对用户分组和权限设置的界面化管理,简化配置管理员在管理人员和权限时的工作量,提高工作效率。 3. 功能描述 管理系统中所有角色,以及配置角色的权限。

    cvs配置的用户,用户权限管理

    cvs用户的配置,先,下个CVSNT安装,不在细说 安装后创建一个数据仓库/home/cvsroot, 下面就是用命令配置CVS了,命令行下的CVS ...还有,最好为CVS在Windows系统下加一个专用的用户,比如CVSAdmin 这样就不会与系统混了.

    在Eclipse中使用SVN与CVS代码管理工具管理项目

    记得在学校读研的时候,学校实验室的代码全部都用CVS管理,为啥?很简单,两个字:免费!它与Eclipse配合,基本上Java的代码编写,代码管理和版本管理都可以“免费”搞定了。SVN(Subversion)是近年来崛起的版本管理...

    GIT安装文件取代SVN和CVS

    与常用的版本控制工具 CVS, Subversion 等不同,它 采用了分布式版本库的方式,不必服务器端软件支持,使源代码的发布和交流极其方便。 Git 的 速度很快,这对于诸如 Linux kernel 这样的大项目来说自然很重要。 Git...

    windows CVSNT 安装包

    打开cvs control panel(在开始菜单里面的快捷方式或者控制面板),server setting中run as 选择具有windows管理者权限的用户,应用。例如我当前的administrator。在cvs control panel的about中重启一下cvs。 ...

    svn 管理工具

    SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同...

    CVSNT-2.5.01

    5.在Windows下建立一个用户cvsuser,供CVS的用户使用. 在CVSNT的Server Settings页面设置: Run as 刚才新建的用户cvsuser, 并设置改用户对目录C:/CVS/CVSROOT/passwd文件有读写权限。 设置Temporary默认的目录C:\...

    TortoiseCVS Windows Installer-开源

    TortoiseCVS的MSI(Windows安装程序)软件包以及用于创建它们的XML脚本。 对于需要通过组策略推送安装的NT系统管理员和没有管理员权限的用户很有用。

    TortoiseSVN 1.5.2.13595版(Windows下的SVN客户端)

     并且你不一定必须使用 Windows 资源管理器,TortoiseSVN 的右键菜单可以工作在其他文件管理器,以及文件/打开对话框等标准的 Windows 应用程序中。你必须牢记,TortoiseSVN 是有意作为 Windows 资源管理器的扩展...

    Git-2.9.2-64-bit(GIT for windows)

    原本Git的使用范围只适用于Linux / Unix平台,但在Windows平台下的使用也逐渐成熟,这主要归功于Cygwin、msysgit环境与TortoiseGit这样易用的GUI工具。其实Git的源代码中已经加入了对Cygwin与MinGW编译环境的支持,...

    WINCVS和CVSNT安装包

    linux:在CVSROOT下的readers、writers、passwd以及repository的许可权限,决定了上述的操作 windows:把CVSNT Control Panel中的Advanced的All user are read给勾选了,这样设置了之后就变成了所有用户只能读不能写...

    Git-1.7.6-preview20110708(windows版)

    原本 Git的使用范围只适用于 Linux / Unix 平台,但逐步并成熟了在 Windows 平台下的使用,主要归功于Cygwin与msysgit环境与TortoiseGit这样易用的 GUI 工具。其实 Git 的源代码中已经加入了对 Cygwin 与 MinGW 编译...

    Unison是OSX,Unix和Windows的文件同步工具

    一致地共享多个特征的工具例如配置管理包(CVS,PRCS,颠覆,BitKeeper的等),分布式文件系统(科达等),单向镜像公用事业(rsync的,等),和其它的同步器(Intellisync,Reconcile等)。但是,它有几点不同之处...

    TortoiseSVN-1.6.4.16808-cn(SVN客户端1.6.4中文版)

     并且你不一定必须使用 Windows 资源管理器,TortoiseSVN 的右键菜单可以工作在其他文件管理器,以及文件/打开对话框等标准的 Windows 应用程序中。你必须牢记,TortoiseSVN 是有意作为 Windows 资源管理器的扩展...

    TortoiseSVN-1.8.1 win64位

    并且你不一定必须使用 Windows 资源管理器,TortoiseSVN 的右键菜单可以工作在其他文件管理器,以及文件/打开对话框等标准的 Windows 应用程序中。你必须牢记,TortoiseSVN 是有意作为 Windows 资源管理器的扩展开发...

    TortoiseSVN 1.5.2.13595(SVN客户端)

     并且你不一定必须使用 Windows 资源管理器,TortoiseSVN 的右键菜单可以工作在其他文件管理器,以及文件/打开对话框等标准的 Windows 应用程序中。你必须牢记,TortoiseSVN 是有意作为 Windows 资源管理器的扩展...

    TortoiseSVN-1.7.10.23359-x64-svn-1.7.7

    并且你不一定必须使用 Windows 资源管理器,TortoiseSVN 的右键菜单可以工作在其他文件管理器,以及文件/打开对话框等标准的 Windows 应用程序中。你必须牢记,TortoiseSVN 是有意作为 Windows 资源管理器的扩展...

    TortoiseSVN1.6.17-32位

    并且你不一定必须使用 Windows 资源管理器,TortoiseSVN 的右键菜单可以工作在其他文件管理器,以及文件/打开对话框等标准的 Windows 应用程序中。你必须牢记,TortoiseSVN 是有意作为 Windows 资源管理器的扩展...

    TortoiseSVN

    并且你不一定必须使用 Windows 资源管理器,TortoiseSVN 的右键菜单可以工作在其他文件管理器,以及文件/打开对话框等标准的 Windows 应用程序中。你必须牢记,TortoiseSVN 是有意作为 Windows 资源管理器的扩展开发...

    基于VisualSVN-Server的安装配置,用户自主修改密码,分布式版本库,自动备份等

    windows 2008 R2和win7 测试通过。平台的VisualSVN-Server文档,包括了安装配置,用户文件管理,用户自主修改密码配置(PHP实现),linkd方式实现多个版本库分布多个硬盘,以及实现定时自动备份,VSS到svn迁移等等,...

Global site tag (gtag.js) - Google Analytics