权限 |
关键?/p> |
说明 |
没有权限 |
n |
用户不能做Q何cvs操作 |
L?/p> |
r |
可以执行annotate, checkout, diff, export, log, rannotate, rdiff, rlog, status命o |
写权?/p> |
w |
可以执行commit/checkin命o |
tag |
t |
可以执行tag/rtag命o,依赖L? |
创徏 |
c |
可以执行add import 命o |
删除 |
d |
可以执行rm命o |
全部权限 |
a |
可以执行所有cvs命o处理cvsacl理命o |
理权限 |
p |
可以执行所有命?/p> |
1Q?nbsp; 下蝲CVSACLQ?/strong>
通过如下|址可以下蝲到CVSACL相关E序Q目前最新版本是cvsacl-
https://sourceforge.net/project/showfiles.php?group_id=75057&package_id=77484&release_id=423655
cvsacl-
cvs-
2Q?nbsp; 安装CVSACLQ?/strong>
安装ҎQcvs-
[root@localhost setup_cvs]# tar -zxvf cvs-
[root@localhost setup_cvs]# mv 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?br />
3Q?nbsp; 修改aclconfig配置文g
[newcvsroot@localhost CVSROOT]$ vi aclconfig // 该配|文件在cvs根目录的CVSROOT下,?data/cvs/CVSROOT/
UseCVSACL=yes // 行首去除“#”Q启用该配置V?/p>
UseSystemGroups=yes // 行首d“#”Q注释该配置V?/p>
UseCVSGroup=yes // 行首去除“#”Q启用该配置V?br />
3Q?nbsp; 创徏用户和组q行赋权
[newcvsroot@localhost CVSROOT]$ pwd
/datanew/cvs/CVSROOT // 创徏用户和组要在CVSROOT下进行,q且执行用户必须是CVSROOT对应的属ȝP即newcvsrootQ该用户在搭建cvs服务器时配置?br />[newcvsroot@localhost CVSROOT]$ htpasswd -b passwd username passwd // 新增用户q设定密码,已有用户的密码更C可用该命令?br />[newcvsroot@localhost CVSROOT]$ vi passwd
kevins:*******:newcvsroot // passwd文g中的所有cvs用户映射到同一个系l用户newcvsroot上?br />
[newcvsroot@localhost CVSROOT]$ vi group
文g格式Q?/p>
group1:x:10:ii,kevins,ava // 用户之间?nbsp;“,”分隔Q?#8220;ii”为无效的首个用户?/p>
注:cvsacl有个bugQ必dl用h前边d一个不存在的cvs用户Qgroup文g才会生效Q原因不明,但此Ҏ实用?br />
4Q?nbsp; 使用cvsacll化权限Q?/strong>
[cvsroot@localhost CVSROOT]$ cvs -d /data/cvs racl ccp:wtcd -R CODE/03.PRODUCT/12.CCP
说明Q?br /> /data/cvsQcvs服务器的根目?br /> ccpQ用h用户l?
wtcdQ一般赋“d”权限时用q个l合Q详l说明见本文“CVSACL定义?U不同的讉K权限”表格
CODE/03.PRODUCT/12.CCPQ配|库中的Module(模块)路径
格式Qcvs –d 配置库位|?racl [用户||l?权限] [-Rl] [-r tag] [模块…] [文g…]
- R q行目录递归
- r rev 讑֮版本/标签
- l 列出已定义的ACLs权限
备注Q该赋权命o要在CVSROOT目录中执行,执行完后vi accessq行查看是否已写入权限文件中?/span>
#
ServerRoot "/home/test/apache2" //apache服务器根目录
#
#
#Listen 12.34.56.78:80
Listen 1080 //监听端口
#
# Dynamic Shared Object (DSO) Support
#
ServerName 218.108.0.82:1080 //服务器IP和Port
#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "/home/test/apache2/htdocs" //服务器文件根目录
#
CVS服务器的安装与配|?/span>
Q{载,l过验证Qƈ作更改和dQ?br />一、安?/strong>
1、验证是否已安装CVS
[root@localhost /]# rpm -q cvs
如果能显C出cMq样的版本信息,证明已安装CVSQ?br />[root@localhost /]# cvs-1.11.2-10
一般安装在/usr/bin/cvs,如果未安?http://www.cvshome.org/下蝲一个最新的rpm安装卛_;
2、创建CVS用户l与用户
root用户下执行以下命令:
[root@localhost /]# groupadd cvs
[root@localhost /]# adduser cvsroot
[root@localhost /]# passwd cvsroot
[root@localhost /]# 输入cvsroot用户密码
3、创建CVSROOT目录
root用户下执行:
[root@localhost /]# mkdir /data/cvs 此处可改Z惌的cvsroot路径
[root@localhost /]# chown cvsroot.cvs /data/cvs 更改cvsroot属主Qcvsroot为用户名Qcvs用户的组?br />
4、初始化CVS
需要在cvsroot用户下执?/span>
[root@localhost /]# su - cvsroot
[cvsroot@localhost /]# cvs -d /data/cvs init 此处对应上面创徏的cvsroot路径
5、修改环境变?br />~辑/etc/profile或?home下相应用L.profile文g
此处以修?etc/profileZQ?br />[cvsroot@localhost /]# exit
退回到root用户Q只有root用户才有权限修改/etc/profile
[root@localhost /]# vi /etc/profile ~辑/etc/profile文g
在末֊上以下两句:
CVSROOT=/data/cvs
export CVSROOT
更新环境变量Q?/span> 注意Q若提示无权限,则需要改变profile的权限后Q再执行上一步骤Q?/p>
[root@localhost /]# chmod 777 /etc/profile [root@localhost /]# vi /etc/services 查看是否有: cvspserver 2401/tcp #CVS client/server operations 注: 2) 创徏CVS启动脚本Q?br />[root@localhost /]# vi /etc/xinetd.d/cvspserver 内容如下Q?br /># default: off service cvspserver [root@localhost /]# service xinetd restart 查看是否启动Q?br />[root@localhost /]# netstat -l | grep cvspserver 屏幕昄Qtcp 0 0 *:cvspserver *:* LISTEN 说明已经正常启动Q如果没有请做如下检查: <1>h查vi /etc/xinetd.d/cvspserver文g中的server = /usr/bin/cvs路径和实际执行文件所在位|是否一_(一般这步骤卛_解决该问? <2>请重新检查配|过E是否有错误或者遗漏; <3>最后还必须查防火墙的设|,?401端口打开?/p>
#. /etc/profile
此时pȝ已经认识$CVSROOTq样的环境变?/p>
6、启动cvs服务器:
1Q?nbsp;修改配置文gQ?strong>
cvspserver 2401/udp #CVS client/server operations
1Q系l自带了CVS旉认存?行,只需要确认一下。如果没有,误己加上去?br />2Q?#8220;cvspserver 2401”要和启动脚本中设|的一_卛_别ؓ启动脚本中的service名和Port?br />
# description: The cvs server sessions;
{
disable = no
port = 2402
socket_type = stream
protocol = tcp
wait = no
user = root
passenv = PATH
server = /usr/local/bin/cvs
#env = HOME=/data/cvs
server_args = -f --allow-root=/data/cvs pserver //该处的\径ؓ要设|的cvsroot路径
#bind = 127.0.0.1
}
3Q?nbsp; 重新启动xinetd服务
[root@localhost /]# netstat -lnp|grep 2401
屏幕昄Qtcp 0 0 0.0.0.0:2401 0.0.0.0:* LISTEN xxxxxx/xinetd