用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文件设定的权限的组合,只要运用得当就可以组合出任意复杂的权限控制来。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值