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

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

    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.  修改aclconfig配置文件
[newcvsroot@localhost CVSROOT]$ vi aclconfig  // 该配置文件在cvs根目录的CVSROOT下,如/data/cvs/CVSROOT/
UseCVSACL=yes    // 行首去除“#”,启用该配置项。

UseSystemGroups=yes   // 行首添加“#”,注释该配置项。

UseCVSGroup=yes    // 行首去除“#”,启用该配置项。

3.  创建用户和组进行赋权
[newcvsroot@localhost CVSROOT]$ pwd
/datanew/cvs/CVSROOT     // 创建用户和组要在CVSROOT下进行,并且执行用户必须是CVSROOT对应的属主用户,即newcvsroot,该用户在搭建cvs服务器时配置。
[newcvsroot@localhost CVSROOT]$ htpasswd -b passwd username passwd   // 新增用户并设定密码,已有用户的密码更新也可用该命令。
[newcvsroot@localhost CVSROOT]$ vi passwd

kevins:*******:newcvsroot     // 将passwd文件中的所有cvs用户映射到同一个系统用户newcvsroot上。

[newcvsroot@localhost CVSROOT]$ vi group

文件格式:

group1:x:10:ii,kevins,ava   // 用户之间用 “,”分隔,“ii”为无效的首个用户。

注:cvsacl有个bug,必须在组用户最前边添加一个不存在的cvs用户,group文件才会生效,原因不明,但此方法确实管用。

4.  使用cvsacl细化权限:

[cvsroot@localhost CVSROOT]$ cvs -d /data/cvs racl ccp:wtcd -R CODE/03.PRODUCT/12.CCP
说明:
      /data/cvs:cvs服务器的根目录
      ccp:用户或用户组
      wtcd:一般赋“读写”权限时用这个组合,详细说明见本文“CVSACL定义了8级不同的访问权限”表格
      CODE/03.PRODUCT/12.CCP:配置库中的Module(模块)路径


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

- R 进行目录递归

- r rev 设定版本/标签

- l 列出已定义的ACLs权限

备注:该赋权命令要在CVSROOT目录中执行,执行完后vi access进行查看是否已写入权限文件中。



 









 

你可能感兴趣的:(==使用CVSACL进行CVS权限访问控制(for Linux)==)