查看文章 |
使用CVSACL进行CVS权限访问控制(for Linux)
CVS是一个很成熟的版本控制系统,它是开源世界的杰作,并且已经成为开源组织使用的标准版本控制系统,在几乎所有的开源项目中得到应用。 CVS是一个开源的软件,CVSACL就是实现访问控制的CVS补丁。它本身也是一个开源的项目,项目主页是http://cvsacl.sourceforge.net/index.html 。它提供了对CVS的模块,目录和文件以及分支和tag的高级访问控制。CVSACL定义了8级不同的访问权限,分别是:
1. 下载CVSACL: 通过如下网址可以下载到CVSACL相关程序,目前最新版本是cvsacl- https://sourceforge.net/project/showfiles.php?group_id=75057&package_id=77484&release_id=423655 cvsacl- cvs- 2. 安装CVSACL: 安装方法:cvs- [root@localhost setup_cvs]# tar -zxvf cvs- //解压缩cvs- [root@localhost setup_cvs]# mv cvs- //修改cvs- [root@localhost setup_cvs]# cd cvs- [root@localhost cvs- [root@localhost cvs- [root@localhost cvs- [root@localhost setup_cvs]# cvs –version //查看cvs版本 Concurrent Versions System (CVS) with CVSACL Patch 注:不需要特意删除旧版本的CVS。 3. CVS服务器的配置: (1) 修改配置文件: [root@localhost /]# vi /etc/services 查看是否有: cvspserver 2401/tcp #CVS client/server operations 注:系统自带了CVS时,这2行也已经有了,只需要确认一下。如果没有,请自己加上去。 (2) 创建CVS启动脚本: [root@localhost /]# vi /etc/xinetd.d/cvspserver 内容如下: service cvspserver 注:其中,server指定CVS可执行文件路径,默认安装就是/usr/bin/cvs,server_args指定源代码库路径及认证方式等,例子中把源代码存放在cvsroot的主目录中,也可以另外指定路径,但必须注意权限设置,pserver是密码认证方式,这种方式的安全性要差一些,但操作起来比较简单。请注意每行等号左右都有一个空格,否则无法启动服务。 (3) 重新启动xinetd服务: [root@localhost /]# service xinetd restart 查看是否启动:[root@localhost /]# netstat -l | grep cvspserver 屏幕显示:tcp 0 0 *:cvspserver *:* LISTEN 说明已经正常启动,如果没有请做如下检查: <1>请检查vi /etc/xinetd.d/cvspserver文件中的server = /usr/bin/cvs路径和实际执行文件所在位置是否一致;(一般这步骤即可解决该问题) <2>请重新检查配置过程是否有错误或者遗漏; <3>最后还必须检查防火墙的设置,把2401端口打开。 4. CVSACL权限设置: (1) 创建用于CVS的专用系统组和用户: [root@localhost /]# groupadd cvsroot [root@localhost /]# useradd –g cvsroot cvsadmin (2) 初始化cvs服务器环境: [root@localhost /]# cvs -d /cvstest init (3) 设置CVS配置库归属及权限: [root@localhost /]# chown –R cvsadmin.cvsroot /cvstest [root@localhost /]# chmod –R 770 /cvsroot (4) 修改CVSROOT/CVSROOT/aclconfig配置文件: [root@localhost /]# vi /cvstest/CVSROOT/aclconfig UseSystemGroups=yes 行首添加“#”,表示注释掉。 UseCVSGroup=yes 去除行首的“#”,表示启用此句。 (5) 创建CVS用户及组: [root@localhost /]# cd /cvstest/CVSROOT [root@localhost /]# htpasswd –c passwd yueyx [root@localhost /]# vi passwd yueyx:*******:cvsadmin 将passwd文件中的所有cvs用户映射到同一个系统用户cvsadmin上。 [root@localhost /]# vi group 文件格式: group1:x:1:yueyx,test1 用户之间用 “,”分割。 注:cvsacl有个bug,必须在组用户最前边添加一个不存在的cvs用户,group文件才会生效。原因不明,但此方法确实管用。 (6) 使用cvsacl细化权限: [root@localhost /]# cvs -d /cvstest racl yueyx:wcd –R Project/doc 说明:/cvstest:配置库路径 yueyx:用户 wcd:参见本文“CVSACL定义了8级不同的访问权限”表格。 Project :配置库中的Module(模块),doc:Module(模块)下的目录
- R 进行目录递归 - r rev 设定版本/标签 - l列出已定义的ACLs权限 |