虽然CVS已经比较成熟,但是在权限控制上还存在不足,目前只能控制到root一级,无法实现权限的精确控制,幸运的是,CVS是一个开源的软件,我们有什么需要的话可以通过修改它的源代码来实现。CVSACL就是实现访问控制的CVS补丁。它本身也是一个开源的项目,项目主页是
http://cvsacl.sourceforge.net/index.html。它提供了对CVS的模块,目录和文件以及分支和tag的高级访问控制。CVSACL定义了8级不同的访问权限,分别是:
权限 参数 说明
没有权限 n 用户不能做任何cvs操作
读权限 r 可以执行annotate, checkout, diff, export,
log, rannotate, rdiff, rlog, status命令
写权限 w 可以执行commit/checkin命令
tag t 可以执行tag/rtag命令,依赖读权限
创建 c 可以执行add import 命令
删除 d 可以执行rm命令
全部权限 a 可以执行所有cvs命令处理cvsacl管理命令
管理权限 p 可以执行所有命令
1. 下载CVSACL:
https://sourceforge.net/project/showfiles.php?group_id=75057&package_id=77484&release_id=423655
cvsacl-1.2.5-for-cvs-1.11.22.tar.gz
cvs-1.11.22-cvsacl-1.2.5-patched.tar.gz
2. 安装CVSACL,命令如下:
安装方法:cvs-1.11.22-cvsacl-1.2.5-patched.tar.gz
[root@localhost opt]# tar -zxvf cvs-1.11.22-cvsacl-1.2.5-patched.tar.gz//解压缩cvs-1.11.22-cvsacl-1.2.5-patched.tar.gz
[root@localhost opt]# mv cvs-1.11.22-cvsacl-1.2.5-patched cvs-1.11.22
//修改cvs-1.11.22-cvsacl-1.2.5-patched目录名称为 cvs-1.11.22
[root@localhost opt]# cd cvs-1.11.22 //进入cvs-1.11.22
[root@localhost cvs-1.11.22]# ./configure //编译安装
[root@localhost cvs-1.11.22]# make
[root@localhost cvs-1.11.22]# make install
[root@localhost /]# cvs –version //查看cvs版本
Concurrent Versions System (CVS) 1.11.22 (client/server)
with CVSACL Patch 1.2.5 (cvsacl.sourceforge.net)
注:不需要特意删除旧版本的CVS
3. CVS服务器的配置:
(1)修改配置文件,命令如下:
[root@localhost /]# vi /etc/services
查看是否有:
cvspserver 2401/tcp #CVS client/server operations
cvspserver 2401/udp #CVS client/server operations
注:系统自带了CVS时,这2行也已经有了,只需要确认一下。如果没有,请自己加上去。
(2)创建CVS启动脚本,命令如下:
[root@localhost /]# vi /etc/xinetd.d/cvspserver
内容如下:
service cvspserver
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/bin/cvs
server_args = -f --allow-root=/home/cvsroot pserver
log_on_success += USERID
log_on_failure += USERID
}
注:其中,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 cvs
[root@localhost /]# useradd –g cvs cvsroot
(2)初始化cvs服务器环境,命令如下:
[root@localhost /]# cvs -d /home/cvsroot init
(3)设置CVS配置库归属及权限,命令如下:
[root@localhost /]# chown –R cvsroot:cvs /home/cvsroot
[root@localhost /]# chmod –R 770 /home/cvsroot
(4)修改/home/cvsroot/CVSROOT/aclconfig配置文件:,命令如下:
[root@localhost /]# vi /home/cvsroot/CVSROOT/aclconfig
UseSystemGroups=yes 行首添加“#”,表示注释掉。
UseCVSGroup=yes 去除行首的“#”,表示启用此句。
(5)创建CVS用户及组,命令如下:
[root@localhost /]# cd /home/cvsroot/CVSROOT
[root@localhost /]# htpasswd –c passwd yanglin
New password:[color=red]CVS服务管理员输入所要设置的密码[/color]
Re—type new password:[color=red]再次输入密码[/color]
htpasswd命令说明,命令如下:
htpasswd -c passwd 用户名 创建一个passwd文件,并将用户名和生成的加密密码输入到passwd文件中
htpasswd -n passwd 显示生成的加密密码
htpasswd -m passwd 用户名 修改passwd文件,将用户名和生成的MD5加密密码输入到passwd文件中。
htpasswd -d passwd 用户名 修改passwd文件,将用户名和生成的加密密码输入到passwd文件中。
htpasswd -p passwd 用户名 修改passwd文件,将用户名和用户输入的密码输入到passwd文件中。
htpasswd -s passwd 用户名 修改passwd文件,将用户名和生成的SHA加密密码输入到passwd文件中。(生成SHA加密密码有点不懂,待研究)
将passwd文件中的所有cvs用户映射到同一个系统用户cvsroot上。
[root@localhost /]# vi passwd
yanglin:*******:cvsroot
创建CVS组,命令如下:
[root@localhost /]#
vi group
文件格式:
group1:x:1:yueyx,test1
用户之间用 “,”分割。
注:cvsacl有个bug,必须在组用户最前边添加一个不存在的cvs用户,group文件才会生效。原因不明,但此方法确实管用。
还有一种通过随机生产密码的方式如下:
等待。。。
(6)使用cvsacl细化权限,命令如下:
[root@localhost /]# cvs -d /home/cvsroot racl yanglin:wcd –R Project/doc
说明:/home/cvsroot:配置库路径 yanglin:用户 wcd:参见本文“CVSACL定义了8级不同的访问权限”。 Project :配置库中的Module(模块),doc:Module(模块)下的目录
格式:cvs –d 配置库位置 racl [用户||组:权限] [-Rl] [-r tag] [模块…] [文件…]
- R 进行目录递归
- r rev 设定版本/标签
- l列出已定义的ACLs权限
(7)查看access文件显示权限设置信息,由于在命令中使用了-R(递归),你会发现,access对Project/doc每个目录都进行了权限设定,命令如下:
[root@localhost CVSROOT]# vi access
# CVS ACL definitions file. DO NOT EDIT MANUALLY
d:TE/src/util:HEAD:yanglin!wcd:(自己写的测试工程进行验证)
附件为:cvsacl安装工具
分享到:
相关推荐
在实际操作中,首先需要解压`cvs-1.11.22.tar.gz`,然后将`cvsacl-1.2.5-for-cvs-1.11.22.tar.gz`中的补丁应用到CVS源码上,编译并安装。安装完成后,CVS服务器会具备CVSAcl的功能,可以为用户分配权限,通过配置...
本文将详细介绍如何搭建一个CVS服务器环境,并涉及权限控制的设置。 首先,要搭建CVS服务器,你需要下载CVS服务器软件。在这里我们推荐使用cvsnt,它是一个对原始CVS进行了增强的版本,支持Windows和Unix平台。你...
【CVS服务器的搭建与配置】是一篇详细指导如何建立和配置CVS(Concurrent Versions System)服务器的文章,旨在帮助用户实现版本控制系统的部署。CVS是一个开源的、基于网络的版本控制系统,允许多个人协作开发同一...
CVS是一个开源的版本控制系统,它跟踪文件的修改历史,允许团队成员同时编辑同一份代码,而不会互相冲突。通过CVS,你可以恢复旧版本的代码,查看谁修改了什么,以及何时修改的,极大地提高了团队合作效率。 二、...
【CVS环境搭建方案详解】 CVS(Concurrent Versions System)是一种开源的版本控制系统,用于管理软件项目的源代码和其他文件的版本。随着软件行业的不断发展,多个人协同开发一个项目变得非常常见,CVS就提供了...
### 搭建CVS服务器知识点详解 #### 一、CVS简介 CVS(Concurrent Versions System)是一种源代码版本控制...通过本文介绍的知识点,希望能够帮助读者顺利完成CVS服务器的搭建,并有效地利用CVS进行版本控制管理工作。
3. 检出(Checkout):从仓库获取最新版本到工作副本的过程。 4. 提交(Commit):将工作副本的更改保存回仓库,记录版本历史。 5. 更新(Update):同步仓库中的最新更改到工作副本。 6. 冲突(Conflict):当两个...
在Windows 7环境下搭建CVS(Concurrent Versions System)服务器是一项必要的任务,特别是对于需要协作开发和版本控制的项目。CVS是一种广泛使用的源代码版本控制系统,它允许多个开发者同时编辑同一份代码,并且...
【CVS(Concurrent Versions System)】是一种版本控制系统,它允许多个人同时协作开发项目,跟踪文件的修改历史,解决代码冲突,并管理不同版本的源代码。本文将介绍如何搭建CVS服务器并进行简单使用。 **一、CVS...
5. **Checkout**:从仓库中获取最新的文件到本地工作目录的过程。 6. **Update**:将仓库中的最新更改合并到用户的工作目录中。 7. **Tagging and Branching**:标记和分支功能,允许用户创建特定时间点的快照或独立...
本文将详细介绍如何在Windows环境下搭建单机CVS系统,主要涉及CVSNT的安装与配置过程。 #### 二、CVSNT的下载与安装 1. **下载CVSNT** 首先需要从官方网站(http://www.cvsnt.org/)下载CVSNT安装包。安装包包含...
在Windows环境下搭建CVS(Concurrent Versions System)服务器是一项常见的任务,特别是在软件开发团队中,CVS被广泛用于源代码版本控制。CVS允许多个人同时编辑和管理同一份代码库,确保团队协作的高效性和代码的...
《CVS配置管理 从入门到精通》是针对软件开发团队协作中不可或缺的版本控制工具——CVS(Concurrent Versions System)的详细教程。CVS作为一个C/S架构的系统,其核心功能在于协助多用户对同一份代码或文档进行协同...
cvsnt安装 ,配置, cvsnt添加cvsnt内部用户,修改记录仓储配置文件实现cvsnt内部账号访问, cvsnt server安装程序,内容详细易懂。 客户端eclipse 内置cvs客户端连接。
本文将详细介绍在Windows系统中搭建CVS服务的具体步骤,并分享一些实际操作过程中的经验和技巧,希望能为需要使用CVS系统的开发者提供一定的帮助。 #### 二、准备工作 在开始搭建CVS服务之前,我们需要确保具备...
【CVS介绍】 CVS,全称Concurrent Versions System,是一种广泛使用的版本控制系统,尤其在软件开发领域中,它帮助团队协调多人协作,管理代码的不同版本,确保代码的完整性和一致性。CVS最初是在UNIX系统上运行的,...
CVS(Concurrent Versions System)是一种版本控制系统,用于管理和跟踪软件开发中的源代码变更。它在多开发者协作的项目中尤为常见,因为它确保了不同开发者之间的更改能够和谐共存,防止了因同步问题而导致的代码...