cvs服务在linux下的安装与配置

cvs服务在linux下的安装与配置

cvs 服务在 linux 下的安装与配置

 

1、   验证是否已安装 CVS
#rpm -q cvs
如果能显示出类似这样的版本信息,证明已安装 CVS
#cvs-1.11.19

若没有安装信息,则需要从 htttp://www.cvshome.org 下载相应的安装包

我的安装环境是 linux as4 u2

若不想使用自带版本,可以用

#rpm –e cvs

删除自系统自带的 cvs 安装包

htttp://www.cvshome.org 获取最新的安装包 cvs-1.11.21.tar.gz

解压该包并安装:

# tar zxvf cvs-1.11.21.tar.gz

进入解压包 cvs-1.11.21

# ./configure –prefix =
你的安装目录 &&make &&make install

2
创建 CVS 用户组与用户
root
用户下执行以下命令:
#groupadd cvs
#adduser cvsroot
#passwd cvsroot

#
输入 cvsroot 用户密码

3
、创建 CVSROOT (CVS 仓库的根目录 )
root
用户下执行:
#mkdir /cvsroot
此处可改为你想要的 cvsroot 路径
#chown cvsroot.cvs /cvsroot
更改 cvsroot 权限

4
、初始化 CVS 仓库
需要在 cvsroot 用户下执行
#su - cvsroot
#cvs -d /cvsroot init
此处对应上面创建的 cvsroot 路径

#
注:对应后面 /etc/xinetd.d/cvspserver 文件的配置

5
、修改环境变量
编辑 /etc/profile 或者 /home 下相应用户的 .profile 文件
此处已修改 /etc/profile 为例:
#exit
退回到 root 用户,只有 root 用户才有权限修改 /etc/profile

#vi /etc/profile
编辑 /etc/profile 文件
在末尾加上以下两句:

CVSROOT=/cvsroot
export CVSROOT

更新环境变量:
#source /etc/profile
此时系统已经认识 $CVSROOT 这样的环境变量

6
、启动 cvs 服务器:
/etc/xinetd.d/ 目录下创建文件 cvspserver ,内容如下:
# default: on
# description: The cvs server sessions;

service cvspserver
{
socket_type = stream
wait = no
user = root
server = /usr/bin/cvs

#
注, /usr/bin/cvs cvs 命令文件的位置

#
注, 删除了系统自带的 cvs 安装包,
#
注,则 server= 你的 cvs 安装目录 /bin/cvs

server_args = -f --allow-root=/cvsroot pserver

#
注,对应第 4 cvs -d /cvsroot init 命令
only_from = 192.168.10.0/24

#
注, 24 是子网掩码的长度,对应 255.255.255.0
}

其中 only_from 是用来限制访问的,可以根据实际情况不要或者修改。
修改该文件权限:
# chmod 644 cvspserver
然后重新启动 xinetd
# /etc/rc.d/init.d/xinetd restart
然后察看 cvs 服务器是否已经运行:
# netstat -lnp|grep 2401
tcp 0 0 0.0.0.0:2401 0.0.0.0:* LISTEN xxxxxx/xinetd
则说明 cvs 服务器已经运行。

7
、建立 cvs 用户
为了 CVS 系统的安全,我们要修改 /cvsroot/CVSROOT/config 文件,将 "#SystemAuth =no" 的前而的注释号 # 去掉,即改为 “SystemAuth =no” ,然后给开发者们逐一建立账号,新建的不要分配用户目录,因为它将作为一个虚拟用户帐号来使用,具体命令如:
   [root@terry root]# chmod -R ug+rwx /cvsroot
   [root@terry root]# chmod 644 /cvsroot/CVSROOT/config
   [root@terry root]# useradd -g cvs -M gaoshang
   [root@terry root]# passwd gaoshang

上面的命令就创建了一个并没有 Home 目录的用户 gaoshang ,接着将系统的 shadow 文件复制到 CVSROOT, 并重命名为 passwd:

   [root@terry root]# cp /etc/shadow /cvsroot/CVSROOT/passwd
   [root@terry root]# chmod 0644 /cvsroot/CVSROOT/passwd

  然后修改 passwd 文件,将除刚才设定的可使用 CVS 的用户 cvsroot gaoshang 之外的所有行删除,然后去掉每行第二个冒号以后的所有内容,并添上字符串 cvsroot, 改为如下格式:

   [root@test11 CVSROOT]# more passwd
cvsroot:$h3ntACe9$cM2SADto6B9P5h5Wrbgyi.:cvsroot
gaoshang:ttSJv9AK.zzZhhHLEQZnZPgEe8f1:cvsroot

  然后,删除掉刚刚在系统中添加的那个用户 gaoshang:

[root@terry root]# userdel -f gaoshang

(这里主要是使用系统在创建用户时,为用户密码生成的的密文)

好了,至此, CVS 服务器端已配置完成。这时你的 CVS 用户就只能用 passwd 中规定的用户来登陆你的 CVS 服务器了

8 .
为用户分配权限
/cvsroot/CVSROOT/ ,加入两个文件 readers , writers

将只能读权限的用户加入 readers 文件,

将具有写权限的用户加入 writers 文件。

如: # vi writers

gaoshang

9
linux 客户端登录测试 (或见 window cvs 客户端 wincvs 1.3 的使用说明)

假定 cvs 服务器在 192.168.10.11 上,系统上有用户 cvsroot gaoshang 。登陆另一台 linxu 机器,执行下列命令可以完成测试:

[root@test2 test]# export CVSROOT=:pserver:[email protected]:2401/cvsroot
[root@test2 test]# cvs login
Logging in to :pserver:[email protected]:2401/cvsroot
CVS password:

#
注:输入密码,没有出错提示表示登陆成功。
[root@test2 test]#
[root@test2test]# export CVSROOT=:pserver:[email protected]:2401/cvsroot
[root@test2 test]# cvs login
Logging in to :pserver:[email protected]:2401/cvsroot
CVS password:

#
注:输入密码,没有出错提示表示登陆成功。
[root@test2 test]#

配置中碰到的问题
1
cvsroot 用户不能登录
[root@test2 test]# export CVSROOT=:pserver:[email protected]:2401/cvsroot
[root@test2 test]# cvs login
Logging in to :pserver:[email protected]:2401/cvsroot
CVS password:
no such user cvsroot in CVSROOT/passwd

解决办法,查看发现原因是 /cvsroot/CVSROOT/passwd 文件中没有包含 cvsroot 用户

2
、只有 cvsroot 用户可以登陆,别的用户都不能登录
查看原因发现是 /etc/xinetd.d/cvspserver 文件的 server_args = -f --allow-root=/cvsroot pserver 目录参数不对,因为我们此次配置的 cvs 工作目录是 /cvsroot ,而不是 /home/cvsroot, 所以将该参数为 server_args = -f --allow-root=/cvsroot pserver ,所有用户均可正常登录。

 

 

原文出处:http://www.linuxdiyf.com/viewarticle.php?id=19876

你可能感兴趣的:(cvs服务在linux下的安装与配置)