CVSNT Manual
一、安装cvs
1. linux环境
#cat /etc/issue
Red Hat Linux release 9 (Shrike)
2. 以管理员root账号登录
3. 检查是否已装有cvs
#su - root
#rpm -qa | grep cvs
如果返回cvs-1.11.**,就说明已安装了cvs。
4. 卸载已安装的cvs
#rpm -e cvs-1.11.**
5. 安装cvs
下载cvsnt-2.5.03.2382-rh9-rpm.tar.gz到/root。
#cd /root
#tar zxvf cvsnt-2.5.03.2382-rh9-rpm.tar.gz
#rpm -ivh cvsnt-2.5.03.2382-1.i386.rpm
6. 创建cvsadmin账户
#groupadd cvsadmin
组名必须是“cvsadmin”
#useradd -g cvsadmin -s /bin/false -M cvsadmin
7. 创建配置管理员的系统账户
#groupadd wang
#useradd -g wang -s /bin/bash wang
#passwd wang
#vi /etc/group
内容如下
cvsadmin:x:500:wang
8. 创建RunAsUser账户
#groupadd cvs
#useradd -g cvs -s /bin/false -M cvs
9. 设置配置管理员的系统账户
#vi /etc/group
内容如下
cvs:x:502:wang
10. 修改cvs配置目录权限
#chmod a+rw -R /etc/cvsnt
11. 配置PServer
#cp /etc/cvsnt/PServer.example /etc/cvsnt/PServer
#vi /etc/cvsnt/PServer
修改如下内容
RunAsUser=cvs
12. 配置/etc/services文件
#vi /etc/services
增加如下2行
cvspserver 2401/tcp # cvs client/server operations
cvspserver 2401/udp # cvs client/server operations
13. 配置xinetd服务
#vi /etc/xinetd.d/cvsnt
修改如下内容
service cvspserver
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/bin/cvsnt
server_args = authserver
groups = yes
# flags = REUSE IPv6 # 注释掉此行
mdns = no # Lockserver handles mdns broadcast
}
14. 重启xinetd服务
#/etc/init.d/xinetd restart
15. 检查cvspserver服务是否已经启动
#netstat -l |grep cvspserver
应该有如下结果
tcp 0 0 *:cvspserver *:* LISTEN
#telnet localhost 2401
看到“Connected to 127.0.0.1.”说明成功。
16. 配置lockserver服务
#chkconfig --list | grep cvslockd
如果没有cvslockd则执行下面命令
#chkconfig --add cvslockd
17. 检查lockserver服务
#telnet localhost 2402
看到“CVSLock 2.2 Ready”说明成功。
二、初始建库
1. 以管理员root账号登录
2. 建项目库
#mkdir -p /cvsdata/p1
#chmod 2770 /cvsdata/p1
#cvs -d /cvsdata/p1 init
#cd /cvsdata/p1/CVSROOT
#touch admin group
#chmod g+w admin group
#cd
#chown -R cvs:cvs /cvsdata/p1
3. 检查远程登录cvs服务器
#cvs -d :pserver:cvs@localhost:/cvsdata/p1 login
没有出现错误提示表示成功。
三、日常管理
1. 以管理员wang账号登录
2. 创建cvs用户的账号
使用linux系统帐号登录cvs不安全,而CVS提供了独立于系统的用户帐号管理,使用配置文件 CVSROOT/passwd来管理帐号。
$cvs -d /cvsdata/p1 passwd -a user1
$cvs -d /cvsdata/p1 passwd -a user2
$cvs -d /cvsdata/p1 passwd -a user4
$cvs -d /cvsdata/p1 passwd -a user5
$cvs -d /cvsdata/p1 passwd -a wang
3. 指定cvs管理员账号
$vi /cvsdata/p1/CVSROOT/admin
格式如下
wang
如果还想加入其他的用户作为管理员,依次加入用户名即可,每个用户名一行。
管理员用户必须是存在CVSROOT/passwd文件中的用户。
4. 创建cvs用户组
将权限相同的用户划分到一组,就是角色的意思,这样可以方便维护。
$vi /cvsdata/p1/CVSROOT/group
格式如下
group1: user1 user2
group2: user4 user5
组中的用户,要在passwd文件中存在。
注意“:”后有个空格。
管理员自动成为“admin”组的成员,group文件中没有显示“admin”组。
5. 设置初始权限
权限管理的基本原则是:如果不显示的指出否定权限,则赋予肯定权限。
对于新建立的Repository,目录没有设置权限,默认是所有人拥有所有目录的权限(CVSROOT除外),对目录有除了更改目录权限以外的全部权限。
任何情况下只有管理员才有权力更改目录的权限。
如果没有定义说明用户有哪些权限,默认的权限为all。
如果在一个用户在一个组中,在对一个文件设置权限时,如果同时有用户与组的权限声明,则以用户声明的为准。
如果一个用户需要访问一个目录,他必须至少有此目录的所有父目录的read权限。
CVS的目录及文件的权限说明会存放在仓库任意目录下的CVS/fileattr.xml文件中,命令无效时可以手工修改。
$cvs -d /cvsdata/p1 rchown -R admin .
$cvs -d /cvsdata/p1 rchacl -R -d .
$cvs -d /cvsdata/p1 rchacl -a read .
$cvs -d /cvsdata/p1 rchacl -a none CVSROOT
$cvs -d /cvsdata/p1 rchacl -u cvs -a none CVSROOT
6. 设置登录方式
$cvs -d :pserver:wang@localhost:/cvsdata/p1 co .
$vi CVSROOT/config
修改如下内容
SystemAuth=no
AclMode=normal
$cvs ci
即修改登录验证方式为CVSNT用户单一验证方式,以后只能用passwd中的用户登录cvs。
$rm -fr CVS*
7. 增加模块
一级目录只能由管理员建立。
$cvs -d :pserver:wang@localhost:/cvsdata/p1 co .
$mkdir module1
$mkdir module2
$cvs -d :pserver:wang@localhost:/cvsdata/p1 add module1
$cvs -d :pserver:wang@localhost:/cvsdata/p1 add module2
8. 设置模块权限
$cvs rchown -R admin module1
$cvs rchown -R admin module2
$cvs -d /cvsdata/p1 rchacl -a none module1
$cvs -d /cvsdata/p1 rchacl -a none module2
$cvs -d /cvsdata/p1 rchacl -u group1 -a all module1
$cvs -d /cvsdata/p1 rchacl -u group2 -a all module2
9. 增加cvs用户
$cvs -d /cvsdata/p1 passwd -a user2
10. 修改cvs用户的密码
$cvs -d /cvsdata/p1 passwd user2
11. 删除cvs用户
$cvs -d /cvsdata/p1 passwd -X user2
12. 修改cvs用户组
$vi /cvsdata/p1/CVSROOT/group
内容按需求修改即可。
四、更换配置管理员
1. 以管理员root账号登录
2. 创建配置管理员的系统账户
#groupadd sun
#useradd -g sun -s /bin/bash sun
#passwd sun
#vi /etc/group
内容如下
cvsadmin:x:500:wang,sun
3. 设置配置管理员的系统账户
#vi /etc/group
内容如下
cvs:x:502:sun
4. 创建cvs用户的账号
#cvs -d /cvsdata/p1 passwd -a sun
5. 设置cvs管理员账号
#vi /cvsdata/p1/CVSROOT/admin
格式如下
wang
sun
1. 检查cvs管理员用户登录
#su - sun
$cvs -d :pserver:sun@localhost:/cvsdata/p1 login
没有出现错误提示表示成功。
2. 检查cvs管理员账号是否有效
$cvs -d /cvsdata/p1 rchown -R admin .
没有出现错误提示表示成功。