`
宋科明
  • 浏览: 101679 次
  • 性别: 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在windows下安装 配置 使用

    2. **设置权限**:取消“使用简单文件共享”选项,然后在C盘根目录下的 `cvsfile` 文件夹属性中设置共享权限,移除Everyone组的权限,并添加新创建的 `cvsuser` 账户,赋予其完全控制权限。 3. **建立CVS用户**: -...

    cvs Windows下的服务器和客户端

    本篇将详细讨论如何在Windows环境下设置和使用CVS服务器及客户端。 **1. CVS简介** CVS是一个开源的、跨平台的版本控制系统,最初由Dick Grune于1986年开发。它允许多个开发者同时编辑同一份代码库,通过记录每一次...

    cvs for windows

    本文将深入探讨Cvs在Windows环境下的使用以及相关知识点。 首先,Cvs的核心功能是版本控制,它允许开发者跟踪和管理代码的不同版本。在多人协作的项目中,Cvs确保每个人都可以访问最新版本的代码,同时不会覆盖或...

    CVS安装工具-windows2000

    在Windows 2000操作系统上安装CVS,通常会选择CVSNT这个实现,因为它是专门为Windows平台设计的。 CVSNT是CVS的一个增强版,为Windows环境提供了更好的兼容性和功能。它支持Windows的用户界面、NT/2000/XP/Server ...

    linux服务器端和windows客户端cvs.rar

    WinCVS是一个图形化的CVS客户端,方便在Windows环境下操作。 2. **配置CVS连接** - 打开WinCVS,进入“属性”->“连接”->“新建”。在“主机”字段输入Linux服务器的地址,如`your_server.com`。 - 在“模块”...

    Windows下搭建的CVS服务器

    在Windows环境下搭建CVS(Concurrent Versions System)服务器是一项常见的任务,特别是在软件开发团队中,CVS被广泛用于源代码版本控制。CVS允许多个人同时编辑和管理同一份代码库,确保团队协作的高效性和代码的...

    Windows下Eclipse3.4之cvs安装配置pdf

    在Windows环境下,使用Eclipse3.4进行软件开发时,版本控制工具是非常重要的辅助软件,而CVS(Concurrent Versions System)就是其中一种经典的选择。本文将深入探讨Eclipse3.4与CVS的集成安装及配置过程,帮助...

    Windows环境下I源码管理工具cvs client使用入门.pdf

    尽管提供的文件内容部分并未包含实质性的信息,但根据文件的标题和描述,我们可以构建关于在Windows环境下使用CVS客户端的知识点。CVS(Concurrent Versions System)是一个开源的版本控制系统,它在软件开发领域中...

    CVS管理权限,设置开发人员的不同权限

    在CVS管理权限的设置中,首先需要添加用户。通过命令行工具`cvspassword -a <username>`来添加新的用户,其中`<username>`是新用户的名字。例如,如果要添加一个名为“neo”的用户,则命令如下: ```shell ...

    Windows环境下CVS的配置教程(mnt格式)

    本教程专注于在Windows环境下配置CVS,以实现与Linux服务器的协同工作。 首先,我们需要了解CVS的基本概念。CVS通过存储每个文件的不同版本来跟踪项目的演变。当开发团队成员进行修改时,CVS会记录这些更改,并允许...

    windows下cvs服务器安装配置(详)

    2. 打开CVS Control Panel,选择“Server Setting”,在“Run as”中选择具有Windows管理者权限的用户,如当前的“administrator”。 3. 重启CVS服务。 4. 在命令行中设置`cvsroot`环境变量,例如: ```cmd set ...

    windows平台下cvs的部署文档

    4. **设置CVS用户和权限**:在Windows Server 2003上,你需要为每个开发者创建用户账户,并在CVS中分配相应的权限。这通常通过编辑`CVSROOT/passwd`文件完成,或者使用CVS的图形管理工具。 5. **启动CVS服务**:...

    cvs for windows资料

    本文将指导您如何安装和配置 CVS(Concurrent Versions System)服务器端和客户端在 Windows 环境下。CVS 是版本控制的利器,广泛应用于 Linux 和 Windows 平台。 安装版本 本文使用的是 CVSNT-2.0.4,这是一个比较...

    Building CVS server on Windows

    本文将详细介绍如何在Windows环境下搭建一个功能完备的CVS服务器。 #### 二、准备工作 在开始之前,我们需要确保已经安装了以下软件和环境: 1. **CVSNT软件**:CVS的一个增强版本,支持Windows操作系统。 2. **...

    cvs 下载 服务器端安装包支持windows

    在Windows环境下,CVS提供了丰富的功能,使得开发者可以在Windows操作系统上方便地进行版本控制。本篇文章将详细介绍如何在Windows服务器上安装和配置CVS。 一、CVS简介 CVS是一个开源的版本控制系统,最初是为了...

    CVS使用及管理文档

    本部分重点介绍如何在Windows环境下使用MyEclipse客户端进行CVS的基本操作,包括上传、下载、提交和更新项目等。 1. **创建模块与提交**: - **新建项目**:在MyEclipse中创建一个新的项目。 - **共享项目**:...

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

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

    CVS的配置 CVS的配置

    在Windows环境下,通常使用CVSNT作为CVS的实现,因为它提供了对Windows系统的良好支持。然而,由于CVS源自Unix系统,其配置过程在Windows上可能会相对复杂,尤其是对于多账户配置。 1. **CVSNT服务器的建立** 要在...

    CVS小乌龟工具

    【CVS小乌龟工具】是一款专为64位操作系统设计的版本控制系统客户端,它集成了CVS(Concurrent Versions System)的核心功能,并且优化了对64位系统的支持,确保在变态的64位环境下也能高效稳定地运行。TortoiseCVS...

    CVS服务器 项目开发管理

    4. **CVSROOT目录**: 每个CVS仓库都有一个特殊的CVSROOT目录,其中包含了所有关于仓库管理和用户权限的元数据。这个目录的内容应妥善保护,以免破坏整个版本控制系统的运作。 **CVS的基本操作** 1. **签出...

Global site tag (gtag.js) - Google Analytics