`
sovolee
  • 浏览: 25369 次
  • 性别: Icon_minigender_1
  • 来自: 长春
最近访客 更多访客>>
社区版块
存档分类
最新评论

使用CVSACL进行CVS权限访问控制 for Linux

阅读更多

使用CVSACL进行CVS权限访问控制(for Linux)


    CVS是一个很成熟的版本控制系统,它是开源世界的杰作,并且已经成为开源组织使用的标准版本控制系统,在几乎所有的开源项目中得到应用。

    也正是由于CVS产生和应用于开源世界,使得它在代码的访问控制方面存在先天性的不足,在应用于大中型的商业项目的代码管理中收到一定的限制。因为这类型的项目通常都需要比较细致的分工,不同的小组分别负责不同模块的开发,代码需要比较严格的访问控制,不同的开发人员只能访问授权的代码。

    幸运的是,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:

通过如下网址可以下载到CVSACL相关程序,目前最新版本是cvsacl-1.2.5:

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 setup_cvs]# 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 setup_cvs]# 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 setup_cvs]# 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 setup_cvs]# 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 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(模块)下的目录


格式:cvs –d 配置库位置 racl [用户||组:权限] [-Rl] [-r tag] [模块…] [文件…]

- R 进行目录递归

- r rev 设定版本/标签

- l列出已定义的ACLs权限

 

分享到:
评论

相关推荐

    cvs cvsacl

    CVSAcl是一个为CVS设计的扩展,旨在增强CVS的访问控制能力,允许管理员更细致地控制用户对CVS仓库的访问权限,包括读、写和执行操作,从而提高了项目的安全性。 CVSAcl-1.2.5是针对CVS-1.11.22的一个补丁,这个补丁...

    cvs配置方法讲解

    服务器端使用 Linux RedHat 5 环境,需要安装 CVS 软件包。可以使用 rpm 命令来查看和卸载 CVS 软件包。首先,下载 CVS 的安装包 cvs-1.11.22-cvsacl-1.2.5-patched.tar.gz,然后上传到虚拟机中,并解压缩安装包。...

    CVS Access Control List Extension-开源

    然而,CVS原生的访问控制功能相对简单,可能无法满足某些组织对于更精细权限管理的需求。此时,CVSACL应运而生,它是一个针对CVS的扩展补丁,旨在提升CVS的访问控制能力。 CVSACL的主要特点在于引入了两个新的子...

    一个使用Androidstudio开发的校园通知APP

    一个使用AndroidStudio开发的校园通知APP,支持注册登录,支持聊天,后端技术:http get post 方法(分别有json数据格式和form数据格式),websocket长连接,用于接收消息,mqtt协议用于查看数据。

    基于粒子群的ieee30节点优化、配电网有功-无功优化 软件:Matlab+Matpowre 介绍:对配电网中有功-无功协调优化调度展开研究,通过对光伏电源、储能装置、无功电源和变压器分接头等设备协调

    基于粒子群的ieee30节点优化、配电网有功-无功优化 软件:Matlab+Matpowre 介绍:对配电网中有功-无功协调优化调度展开研究,通过对光伏电源、储能装置、无功电源和变压器分接头等设备协调控制,以实现光伏利用率最大、网络损耗最小、电压质量最优的综合优化目标。 采用粒子群算法寻求最优解,得到配电网的调控策略,从而制定合理的优化运行方案。 最后通过算例分析,说明其合理性。 Matpowre(需要Matpowre请安装不然会有错)

    C#自定义事件 2024年12月23日

    通过自定义事件来传值。此种方法适合于写驱动程序。进行数据采集。 对于一般的系统事件,是有两个参数的,一个是sender,一个是EventArgs,对于sender,个事件的触发者,一般指向的是一个控件,但是对于EventArgs,一般常用来传递鼠标位置等信息,下面就自定义事件传值就是通过EventArgs来实现。 通过EventArgs来实现传值,我们首先需要创建一个类,继承EventArgs,我们可以将需要传递的数据,直接在类里面定义成属性,这里以传递一个布尔(没有再最终的代码内使用)、一个浮点数,一个字符串为例,

    基于校园的互帮互助社交APP全部资料+详细文档+高分项目.zip

    【资源说明】 基于校园的互帮互助社交APP全部资料+详细文档+高分项目.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

    Download usage

    Download usage

    基于高德地图的校园导航全部资料+详细文档+高分项目.zip

    【资源说明】 基于高德地图的校园导航全部资料+详细文档+高分项目.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

    健康中国2030框架下智慧医药医疗博览会方案

    内容概要:本文介绍了 2020 京东健康智慧医药医疗博览会在湖南长沙举办的总体方案。该方案详细描述了展会的背景、目标、组织机构、展区规模和内容、主体活动、拟邀嘉宾及宣传媒体等内容。展会旨在展示互联网+医疗健康生态下的新技术、新产品和新方案,推动智慧医疗产业链的数据化、信息化和智慧化建设,为健康中国战略和健康湖南行动贡献力量。 适合人群:医疗行业的从业人员、智慧医疗技术开发者、政府相关部门、健康产业投资人等。 使用场景及目标:① 通过展会展示先进的医药医疗技术和产品,促进技术交流与合作;② 推动智慧医疗产业发展,助力健康中国战略和健康湖南行动的实施;③ 提高人民群众的健康水平和医疗服务质量。 其他说明:此次展会将设置十大展区,涵盖健康管理、智慧医院、精准医疗、智能穿戴、移动医疗系统、智能养老等多个方面,同期还将举办多场论坛和商务活动。

    qt开发类似于网盘的项目

    C/S架构,C++开发的,使用UDP协议

    2023-04-06-项目笔记 - 第三百五十六阶段 - 4.4.2.354全局变量的作用域-354 -2025.12.23

    2023-04-06-项目笔记-第三百五十六阶段-课前小分享_小分享1.坚持提交gitee 小分享2.作业中提交代码 小分享3.写代码注意代码风格 4.3.1变量的使用 4.4变量的作用域与生命周期 4.4.1局部变量的作用域 4.4.2全局变量的作用域 4.4.2.1全局变量的作用域_1 4.4.2.354局变量的作用域_354- 2024-12-23

    基于Bmob后台搭建的一块校园社区类APP,内置二手交易模块全部资料+详细文档+高分项目.zip

    【资源说明】 基于Bmob后台搭建的一块校园社区类APP,内置二手交易模块全部资料+详细文档+高分项目.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(人工智能、通信工程、自动化、电子信息、物联网等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

    高校学生求职就业平台(编号:24440246).zip

    高校学生求职就业平台(编号:24440246).zip

    Python与Pygame实现带特效的圣诞节场景模拟程序

    内容概要:本文详细介绍如何使用Python结合Pygame库制作一个充满圣诞气息的应用程序。该程序包括生成雪花、圣诞树以及闪烁星星的效果,并配以背景音乐以增加节日气氛。通过具体的代码示例,指导读者逐步构建这一有趣的项目。 适用人群:对于有兴趣探索Pygame图形库及游戏开发的基础开发者、编程初学者。 使用场景及目标:① 初步掌握Pygame的基本用法及其常见图形绘制方法;② 学习如何通过编程手段营造节日氛围;③ 作为个人项目或课堂作业的优秀实践。 其他说明:除了文中提供的基础功能外,鼓励读者在此基础上发挥创意,加入更多有趣的功能,比如动态改变场景中的物体、响应用户输入等,从而创造出独一无二的作品。

    计算机程序设计员三级(选择题)

    计算机程序设计员三级(选择题)

    基于Spring Boot的养老院管理系统的设计与实现_6575f5w2_223-wx(1).zip

    基于Spring Boot的养老院管理系统的设计与实现_6575f5w2_223-wx(1).zip

    数据结构排序算法:插入排序、希尔排序、冒泡排序及快速排序算法

    数据结构

    (42757812)0.96寸OLED显示屏STC8A8K64S4A12-IIC-例程

    内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。

    基于java的网上订餐系统(编号:96717170).zip

    基于java的网上订餐系统(编号:96717170).zip

Global site tag (gtag.js) - Google Analytics