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

用cvs实现复杂的权限控制

阅读更多

作者:张元一
这篇文章的基础是:为CVS建立只读用户,如果你对CVS不太了解,我建议你在这篇文章之前先读一下那篇文章或者其他的介绍CVS的文章以对CVS有一个大致的了解。
在上一篇文章中我们讲到了如何为CVS建立只读用户,但是在有些应用中,可能一个CVS服务器上存在有多个项目,也就是多个仓库,那么如何对这些项目进行权限管理呢?能不能让一个用户对这个项目具有写权限,而对其他项目只具有读取权限呢?答案是可以的,下面我们通过一个例子来介绍具体的实现方法:
假设你的CVS服务器上有两个项目:proj(一个正在开发的项目)和prac(一个用户公司实习人员练习的项目),而你打算建立4个用户:admin,projdev,pratice,anonymous,这4个用户分别如下:
        admin----管理员,对两个项目都拥有读写权限
        projdev----proj开发人员,你希望它只对proj拥有写权限,对于test拥有读权限
        practice----公司新来的实习生,你希望他只对prac具有写权限,但是又不希望他看到proj中的东西
        anonymous----匿名用户,对于他们,你希望他们只能读取prac项目。
下面就来讲解实现的步骤:
第一步,创建用户和群组,
        groupadd cvsgroup
        groupadd project
        groupadd practice
        adduser  cvsroot -d /home/cvsroot
        adduser  project -d /home/cvsroot
        adduser  practice -d /home/cvsroot
        adduser  cvspub -d /home/cvsroot
-d的作用是为用户指定主目录,这里只为cvsroot用户创建主目录,然后编辑/etc/group文件,是用户和组的关系如下:
        cvsgroup:cvsroot,project,practice,cvspub
        project:project,cvsroot
        practice:practice
然后进入/home/cvsroot目录,输入如下命令:
        chmod 770 proj
        chown -c cvsroot:project proj
        chmod 775 prac
        chown -c cvsroot:practice prac
其中第一、二句指定proj文件夹只有同组的用户才对其拥有读写权限,并且它属于cvsroot用户和project组。第三、四句指定prac文件夹只有同组的用户对其具有读写权限,其他用户具有读取和执行权限。
假设你已经按照我上一篇文章说的,将CVS的LockDir设成了/var/lock/cvs,那么你应该在这个目录下建立两个文件夹:
        mkdir proj
        chmod 771 proj
        chown -c cvsroot:cvsgroup proj
        mkdir prac
        chmod 771 prac
        chown -c cvsroot:cvsgroup prac
之所以要将这两个文件夹的组设为cvsgroup是为了保证所有的用户都可以正确访问它。
接下来,你需要编辑$CVSROOT/CVSROOT/目录下的passwd文件,为这四个用户设置相应的密码和对应的系统帐户:
        admin:密码:cvsroot
        projdev:密码:project
        practice:密码:practice
        anonymous::cvspub
然后编辑writers文件:
        admin
        projdev
        practice
编辑readers文件:
        anonymous
这样就已经实现了你所需要的权限控制了。当然你也可以将这个例子再扩展到更复杂的情况,但是应该注意下面几点:
1.让所有的用户对应的系统用户都属于cvsgroup组,并且LockDir目录下的所有目录都属于cvsgroup组,这样可以确保每个用户都可以正确的读取项目文件。
2.为每个项目都建立一个单独的用户和组,让这个项目所在的文件夹属于cvsroot用户和这个项目的组,这样可以保证cvsroot用户对所有的项目都有权访问。
3.将所有对项目x具有写权限的用户加入这个项目对应的组。
4.对于只读用户,不要让它们加入任何组(除了cvsgroup)
5.由于CVS默认一个用户拥有读取权限,因此如果要禁止一个用户访问一个项目,那个不要将这个用户加入这个项目的组,并将这个项目的访问权限设为770,否则设为775。
其实对CVS的权限控制就是对项目文件夹访问权限和用户以及readers,writers文件设定的权限的组合,只要运用得当就可以组合出任意复杂的权限控制来。

分享到:
评论

相关推荐

    cvs用户复杂权限管理

    具体而言,CVS通过以下方式实现权限控制: 1. **文件系统权限**:CVS利用Unix/Linux系统的文件和目录权限来限制用户对特定文件或目录的访问。权限分为读(r)、写(w)和执行(x)三种类型,可针对用户、所属组和...

    版本控制插件cvs

    4. **访问控制(Access Control)**:CVS提供了一定程度的权限管理,可以限制用户对仓库的访问权限,如只读或读写权限。 5. **模块(Module)**:CVS中的模块是一个逻辑上的分组,可以包含多个相关的文件和目录。...

    cvs版本控制系统.的简单介绍

    - **CVSROOT**:用户在使用CVS时需要设置的一个环境变量,用以指定CVS仓库的位置。 #### 五、使用CVS的简单示例 ##### 本地CVS示例 假设我们正在编写一些文件,并希望使用CVS来管理这些文件。首先,需要选择一个...

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

    CVS(Concurrent Versions System)作为早期广泛使用的集中式版本控制系统,在项目管理、代码版本控制等方面发挥了重要作用。为了确保项目的稳定性和安全性,对不同开发人员进行权限管理是非常必要的。 本文将详细...

    CVS手册(搭建/配置/权限)

    通过上述内容,我们可以了解到CVS不仅提供了基本的版本控制功能,还具备了许多高级特性和管理选项,非常适合中小规模的开发团队使用。然而,随着版本控制系统的发展,现代的工具如Git等因其分布式架构和更强大的功能...

    Eclipse中使用CVS

    7. **权限管理**:CVS支持细粒度的权限控制,团队管理员可以在服务器端设定哪些用户可以读取、写入或执行特定的CVS目录。 Eclipse使用CVS的优点在于其开放性和互操作性。开发者可以使用任何支持CVS的工具访问同一...

    CVS的配置 CVS的配置

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

    cvs版本控制器

    这通常涉及到在服务器上配置CVSNT或开源的CVS,这两个都是Windows环境下常见的CVS实现。安装后,你需要设置CVS根目录,这个目录会存储所有的项目仓库。 接下来是创建CVS仓库。一个仓库可以包含多个项目,每个项目都...

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

    对于更复杂的访问控制,可以通过编辑`/etc/inetd.conf`或使用xinetd来启用和配置CVS服务。确保匿名用户(在上面的配置中为`anonymous`)只能读取仓库,而其他用户需要进行身份验证。 二、Windows客户端CVS的安装与...

    在Eclipse中配置和使用CVS

    9. 基于 CVSTrac 的小组开发环境搭建:管理员可以使用 CVSTrac 实现 web 界面的 CVS 用户管理,集成的 BUG 跟踪和 WIKI 交流。 10. CVS 中的用户权限管理:管理员可以基于系统用户的 CVS 权限管理和基于 CVSROOT/...

    CVS使用手册

    - 基于系统用户和`CVSROOT/passwd`文件实现CVS的权限控制。 对于一般开发人员,了解如何使用`cvs update`和`cvs commit`进行文件同步和提交更改就足够了。但对于管理员,需要掌握更多高级功能,如分支管理、用户...

    CVS小乌龟工具

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

    cvs 使用说明cvs 使用说明

    ### CVS使用说明详解 CVS,全称Concurrent Versions System,是一种开源的版本控制系统,用于管理软件源代码的变更历史,适用于多人协作的开发环境。本文将基于给定的文件内容,详细介绍CVS的安装、配置、使用流程...

    UNIX下CVS使用

    初始化CVS版本库使用`cvs init`,首次导入项目时用`cvs import`,例如`cvs import -m "comments" project_name vendor_tag release_tag`。 2. **CVS的日常使用**: 开发人员通常需要执行`cvs checkout`以获取项目...

    linux安装cvs操作手册

    使用命令`chmod -R 770 /cvsroot`实现此目的。 - 分别初始化每个项目目录:进入每个项目目录,使用命令`cvs init`完成初始化。 #### 五、配置CVS服务 1. **配置xinetd服务**: - 编辑`/etc/xinetd.d/cvs`文件,...

    cvs的使用,给予一定的帮助

    - 权限管理:CVS提供了一套权限管理系统,可以指定不同的用户拥有不同的权限,这些权限信息存储在CVSROOT/passwd文件中。 - 使用场景:大约20%的工作时间用于代码提交与更新,而80%的时间则花费在代码的编写、测试等...

    MyEclipse下CVS的使用教程

    CVS(Concurrent Versions System)是一种广泛使用的开源版本控制系统,而MyEclipse作为强大的Java集成开发环境,集成了对CVS的支持。本教程将详细介绍如何在MyEclipse中配置CVS服务器以及如何使用MyEclipse的CVS...

    CVS安装手册---cvs讲解

    - **4.2 修改用户权限**:为了控制用户的访问权限,需要对用户的CVS目录进行权限设置,这可能涉及到修改`cvsroot`目录下的用户权限文件。 5. **在 Eclipse 中配置 CVS** - **5. 在Eclipse中配置CVS**:Eclipse是...

Global site tag (gtag.js) - Google Analytics