作者:张元一
这篇文章的基础是:为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权限管理机制 CVS的权限管理主要依赖于文件系统权限、用户分组以及特定的配置文件。...
CVS(Concurrent Versions System)是一种广泛使用的源代码版本控制系统,它允许开发团队协同工作,同时跟踪代码的历史版本。在软件开发过程中,CVS扮演着至关重要的角色,它确保了团队成员之间的协作效率,同时也...
cvs 版本控制 软件项目管理 cvs 版本控制 软件项目管理
CVS版本控制简明使用手册 CVS(Concurrent Versions System)是一种主流的开放源码网络透明的版本控制系统,适合个人开发者到大型、分布团队使用。CVS 的功能非常强大,它是一个 C/S 结构的软件,需要架设一个 CVS ...
CVS(Concurrent Versions System),是一种广泛使用的源代码版本控制系统,它允许多个开发者协同工作,同步他们的代码修改。本文将详细介绍如何使用CVS和Eclipse集成环境来实现小组的同步开发。 首先,我们需要在...
4. **访问控制(Access Control)**:CVS提供了一定程度的权限管理,可以限制用户对仓库的访问权限,如只读或读写权限。 5. **模块(Module)**:CVS中的模块是一个逻辑上的分组,可以包含多个相关的文件和目录。...
- **CVSROOT**:用户在使用CVS时需要设置的一个环境变量,用以指定CVS仓库的位置。 #### 五、使用CVS的简单示例 ##### 本地CVS示例 假设我们正在编写一些文件,并希望使用CVS来管理这些文件。首先,需要选择一个...
本文将详细介绍如何使用 CVSNT 和 TortoiseCVS 搭建版本控制系统,并结合 Eclipse 和 IntelliJ IDEA 等开发工具,展示如何在实际开发中应用 CVS。 第一部分:CVS 平台的搭建 1. 环境:Windows XP/2003, CVSNT ...
CVS(Concurrent Versions System)作为早期广泛使用的集中式版本控制系统,在项目管理、代码版本控制等方面发挥了重要作用。为了确保项目的稳定性和安全性,对不同开发人员进行权限管理是非常必要的。 本文将详细...
通过上述内容,我们可以了解到CVS不仅提供了基本的版本控制功能,还具备了许多高级特性和管理选项,非常适合中小规模的开发团队使用。然而,随着版本控制系统的发展,现代的工具如Git等因其分布式架构和更强大的功能...
在进行团队开发时,版本控制至关重要,Eclipse选择了CVS(Concurrent Versions System)作为其版本控制系统,以实现高效的协同开发。 CVS是一个分布式版本控制系统,允许多人同时对同一项目进行修改,并能追踪和...
CVS(Concurrent Versions System)是一种广泛使用的源代码版本控制系统,尤其在软件开发领域中,它扮演着重要的角色。这份“CVS版本控制器资料”涵盖了如何有效地利用CVS管理项目,以及如何将其与MyEclipse集成使用...
CVS(Concurrent Versions System)是早期广泛使用的一种版本控制系统,它允许开发者在多个开发人员之间共享和同步代码。然而,在不再需要CVS版本控制或切换到其他版本控制系统(如Git)时,可能需要从项目中删除CVS...
### CVS版本控制心得详解 CVS(Concurrent Versions System)是一种经典的版本控制系统,主要用于软件开发过程中对源代码的管理。本文基于撰写人金珉的一年多实战经验,深入解析CVS版本控制策略,旨在为项目管理者...
虽然CVS在过去曾是广泛使用的版本控制系统,但随着Git的出现,CVS的市场份额逐渐减少。Git提供了更快的速度、更强大的分支管理和更直观的用户界面,使得许多开发者转向了Git。 总结,CVS版本控制系统在软件开发中的...
CVS(Concurrent Versions System)是一种广泛使用的源代码版本控制系统,它允许开发团队协同工作,同时跟踪文件和目录的历史变化。CVS系统的核心概念包括版本化、分支、合并以及冲突解决,这些都是软件开发中协作的...
《CVS使用手册》是为了解决多个开发人员在协同工作中如何有效管理和同步文件而编写的。CVS,即Concurrent Versions System,是一种集中式的版本控制系统,它通过记录文件的不同版本,确保团队成员间的文件同步,避免...
CVS(Concurrent Versions System)是一种广泛使用的版本控制系统,它允许团队成员协同工作并跟踪代码的变化。在Windows环境下,通常使用CVSNT作为CVS的实现,因为它提供了对Windows系统的良好支持。然而,由于CVS...
CVS(Concurrent Versions System)是一种广泛使用的源代码版本控制系统,它允许开发团队协同工作,同时跟踪对项目文件的修改历史。在这个系统中,每个开发人员都有自己的工作副本,可以自由地修改,而不会影响其他...