1.簡介
CVS的權限控制,依賴于操作系統(tǒng)的權限控制機制。因此,正確理解了*nix的用戶/組的權限管理,能靈活的配置CVS的權限。本文通過一個實踐后的例子,簡要說明了一種對cvs管理員和cvs用戶分別配置權限的方案。以下內(nèi)容是我個人的學習筆記,僅供初學者參考。如有錯誤,懇請在論壇指正。
2.假設
假設 cvs倉庫目錄結構為:
/data/cvsRep/--
|
|-CVSROOT
|
|-project1/module1
|
|-project2/module2
|
|-...
其中,/data/cvsRep是CVS倉庫(repository)。 project1/module1,project2/module2是一個個工程項目的源代碼存放文件夾(注:cvs稱其為一個個module,可能初學者有點兒不習慣。暫時理解為project方便些)。
3. 對倉庫所在路徑的上級目錄權限
根據(jù)unix/linux本身的權限管理特征:
對一個目錄的讀或?qū)憴嘞蓿仨毎▽λ猩霞壞夸浀淖x權限。
因此,所有cvs用戶,需要對/data 和 /data/cvsRep目錄有讀的權限。
4. 倉庫內(nèi)部的權限
(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參與開發(fā))
project2 (cvsteam2參與開發(fā))
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中省略了前面提到的對有關目錄內(nèi)的權限的遞歸設置的展示。