CVS访问控制
安装带权限控制的 CVS
CVS自身的权限控制机制非常简单,如果你的cvs repository有多个项目共存时,单独控制某个项目的读写权限非常困难。一般有两种方法解决这个问题: 

使用CVS提供的hook功能:cvs提供一个commitinfo文件用来控制用户能否提交,具体实现请参考下面的具体介绍; 
对CVS源码直接patch:一般是通过重写CVS的网络部分来控制pserver通道的权限。 
[编辑]通过patch实现CVS权限控制
获取CVS 的源码 
获取cvsacl的源码 
Copy acl.c文件到CVS源码的src目录 
Copy patch文件cvsacl-patch-1.1.0到CVS源码目录 
在CVS源码目录执行 "patch -p0 < cvsacl-patch-1.1.0" 
编译CVS 
[编辑]设置CVS ACL
[编辑]建立 CVS 用户帐户和组
以 root 用户的身份登录,创建一个名为 cvs 的用户,让这个用户使用 cvs 作为他的主组 

[编辑]建立文件夹和资源库
以用户 cvs 的身份登录,设置目录 /home/cvsroot的访问级别和访问模式: 

 chmod 770 /home/cvsroot
初始化资源库: 

 cvs -d /home/cvsroot init 
[编辑]修改环境变量和权限配置
以 root 用户的身份登录,在/etc/profile文件中增加; 

 export CVSROOT = /home/cvsroot 
 export EDITOR = /usr/bin/vi 
[编辑]修改/home/cvsroot/CVSROOT/aclconfig
[编辑]修改 xinetd 服务以启用 pserver 协议
1. 以 root 用户的身份登录。 2. 在目录 /etc/xinetd.d 中创建一个名为 cvspserver 的文件,文件内容如下: 

 # default: off 
 # description: An cvs server. 
 service cvspserver 
 { 
 disable = no 
 socket_type = stream 
 protocol = tcp 
 user = root 
 wait = no 
 server = /usr/bin/cvs 
 server_args = -f --allow-root=/home/cvsroot pserver 
 log_on_success +=USERID 
 log_on_failure += USERID 
 } 
打开 /etc/services 并核实存在下面这两行代码。如果不存在,则添加它们: 

 cvspserver 2401/tcp # CVS client/server operations 
 cvspserver 2401/udp # CVS client/server operations 
重新启动 xinetd 服务: 

 service xinetd restart
 
[编辑]建立CVS用户
CVS提供两种用户验证机制,一是系统用户验证,另外就是CVS自身用户验证.为了保证系统其他资源的安全,建议使用CVS用户验证. CVS的passwd文件是用户密码存放文件,你可以通过一个叫cvsadmin的小程序方便管理CVS用户,cvsadmin的下载地址为。 1. 以cvsroot用户的身份登录。 2. 修改/home/cvsroot/CVSROOT/config中的SystemAuth=no; 3. 使用cvsadmin命令增加需要的用户,其中系统用户输入cvsroot; 4. 设置自己为CVS acl管理员 cvs -d /home/cvsroot racl yourname -r ALL -d ALL 5. 使用acl和racl命令为用户添加权限,acl和racl的使用方法请参考CVS权限控制。 

posted on 2004-12-28 13:26  我叹云儿走,风儿送我愁  阅读(1366)  评论(0)    收藏  举报