1.简介
CVS的权限控制,依赖于操作系统的权限控制机制。因此,正确理解了*nix的用户/组的权限管理,就能灵活的配置CVS的权限。本文通过一个实践后的例子,简要说明了一种对cvs管理员和cvs用户分别配置权限的方案。以下内容是我个人的学习笔记,仅供初学者参考。如有错误,恳请在论坛指正。
2.假设
假设 cvs仓库目录结构为:
/data/cvsRep/--
|
|-CVSROOT
|
|-project1/module1
|
|-project2/module2
|
|-...
其中,/data/cvsRep是CVS仓库(repository)。
project1/module1,project2/module2是一个个工程项目的源代码存放文件夹(注:cvs称其为一个个module,可能初学者有点儿不习惯。暂时理解为project方便些)。
3. 对仓库所在路径的上级目录权限
根据unix/linux本身的权限管理特征:
对一个目录的读或写权限,必须包括对所有上级目录的读权限。
因此,所有cvs用户,需要对/data 和 /data/cvsRep目录有读的权限。
4. 仓库内部的权限
(1) 使用cvs的所有用户(包括cvs管理员和cvs普通用户)必须拥有对/data/cvsRep/CVSROOT目录及
其中所有文件的读权限
(2) 使用cvs的所有用户(包括cvs管理员和cvs普通用户)必须拥有对/data/cvsRep/CVSROOT/history
文件的写权限
(3) cvs管理员组拥有对配置目录和文件/data/cvsRep/CVSROOT及其下所有文件的读写权限
(4) cvs普通用户组,拥有对相应project目录的读写权限。
提示
为了方便配置,可以使用chgrp -R ...配合chmod命令,来修改目录或文件的权限。
5.实例
5.1 用户和组
group : cvsadmin
cvsteam1
cvsteam2
user : cvsroot (cvsadmin)
flying (cvsadmin,cvsteam1)
beibei (cvsteam1,cvsteam2)
cobyn (cvsteam1)
5.2 两个项目
project1 (cvsteam1参与开发)
project2 (cvsteam2参与开发)
5.3 目录的权限设置
[root@localhost /]# ls -l
...
drwxrwxr-x 3 root root 4096 10月 8 16:23 data
...
[root@localhost /]# ls -l /data
...
drwxrwxr-x 5 cvsroot cvsadmin 4096 10月 9 11:22 cvsRep
...
[root@localhost /]# ls -l /data/cvsRep
drwxrwxr-x 3 cvsroot cvsadmin 4096 10月 9 15:32 CVSROOT
d---rwx--- 2 cvsroot cvsteam1 4096 10月 9 17:34 project1
d---rwx--- 2 cvsroot cvsteam2 4096 10月 9 11:22 project2
[root@localhost /]# ls -l /data/cvsRep/CVSROOT
...
-rw-rw-rw- 1 cvsroot cvsadmin 157 10月 9 17:34 history
...
5.4 注意
5.3中省略了前面提到的对有关目录内的权限的递归设置的展示。