当前位置:操作系统 > Unix/Linux >>

新手进阶:CVS使用速成配置过程详解

CVS服务器的安装与设置相关文档网上已经很多了,但是对于如何管理CVS服务器技巧方面的文档很少。

  我就曾经遇到这样的情况:需要多个库,共享一台CVS服务器,需求是各个库CVS权限分开,不可以互相访问。这样就出现了交叉权限。权限怎么分配呢?这篇文档我主要想说明通过CVS多仓库(多cvsroot)来实现权限的分离与交叉。

  这是一篇整理而来的文档,非常实用,我曾经建立过很多个CVS,按照如下操作很容易就能建立,而且能够达到你所要求的--希望对大家有所帮助,里面也有我的一些技巧经验,很实际 一 CVS服务器的安装:

  1、查看你的操作系统上是否安装了CVS:

  #> rpm -qa|grep cvs

  如果没有安装你可以在Redhat 第2张光盘上找到,另外你也可以在网上下载到最新的rpm包。很容易找,其实不存在什么linux版本。

  2、建立cvs用户组:

  #> groupadd cvs

  3、建立cvs组的cvsroot用户和所属的目录:

  #> useradd -g cvs -G cvs ?d /cvsroot cvsroot

  4、为cvsroot用户添加密码:

  #> passwd cvsroot

  5、改变 /cvsroot/ 的目录属性:

  #> chmod ?R 770 /cvsroot

  6、改变用户登陆身份:

  #> su cvsroot

  7、开始创建单个项目:

  #> cd /cvsroot

  #> mkdir project1

  #>mkdir project2

  8、开始建立仓库:

  #> cvs ?d /cvsroot/project1 init

  #> cvs ?d /cvsroot/project2 init

  #> chmod ?R 770 ./project1/ ./project2/

  9、建立CVS服务启动文件,我们使用xinetd方式:

  #> [Crtl]+[d] 切换到root用户身份

  #> cd /etc/xinetd.d

  #> vi cvspserver

  service cvspserver

  {

  disable = no

  flags = REUSE

  socket_type = stream

  wait = no

  user = root

  server= /usr/bin/cvs

  server_args= -f --allow-root=/home2/cvsroot/project1

  --allow-root=/home2/cvsroot/project2 pserver log_on_failure += USERID

  }

  注:由于xinetd的server_args长度限制,当你想运行很多的单个仓库的时候,可以这么做:

  #> vi cvspserver

  service cvspserver

  {

  disable = no

  flags = REUSE

  socket_type = stream

  wait = no

  user = root

  server = /cvsroot/cvs.run

  log_on_failure += USERID

  }

  编写cvs.run脚本

  #> vi /cvsroot/cvs.run

  #!/bin/bash

  /usr/bin/cvs -f

  --allow-root=/cvsroot/project1

  --allow-root=/cvsroot/project2

  pserver

  #>chmod +x /cvsroot/cvs.run

  10、加入cvs服务:

  #>vi /etc/services

  cvspserver 2401/tcp #pserver cvs service

  cvspserver 2401/udp #pserver cvs service

  11、启动cvs服务:

  #> /etc/init.d/xinetd restart

  12、检查cvspserver服务是否已经启动:

  #> netstat -l |grep cvspserver

  应该有如下结果:

  tcp 0 0 *:cvspserver *:* LISTEN

  二、CVS服务的用户管理:

  上面我们已经建立了project1和project2两个CVS仓库,下面我们分别给两个仓库建立cvs用户。

  13、创建可以登陆cvs服务器的用户名和密码:

  #> su cvsroot

  #> vi /cvsroot/project1/CVSROOT/passwd

  trotter:*****:cvsroot

  mimi:*****:cvsroot

  #>vi /cvsroot/project2/CVSROOT/passwd

  trotter:*****:cvsroot

  gary:*****:cvsroot

  这两个文件的意思是有trotter,mimi,gary三个cvs用户,mimi拥有project1的使用权限,gary拥有project2的使用权限,trotter拥有project1和project2的使用权限。登陆后的权限是cvsroot权限。

  注意:这里的cvs用户和系统用户是不同的。

  14、*****为密码,由以下文件生成:

  #> vi /cvsroot/passwd.pl

  #!/usr/bin/perl

  srand (time());

  my $randletter = "(int (rand (26)) + (int (rand (1) + .5) % 2 ? 65 : 97))";

  my $salt = sprintf ("%c%c", eval $randletter, eval $randletter);

  my $plaintext = shift;

  my $crypttext = crypt ($plaintext, $salt);

  print "${crypttext}

  ";

  #>chmod a+x /cvsroot/passwd.pl

  15、如果你想生成一个密码是“123456”,则:

  #> /cvsroot/passwd.pl “123456”

  回车即可得到加密密码,用其替换passwd文件中的*****

  16、Ok,cvs现在已经全部安装完成了,如果你想让一个用户拥有project1的权限,你就在 /cvsroot/project1/CVSROOT/passwd中给他加入一个用户;如果你想让一个用户同时具有project1和project2 的权限,你就给/cvsroot/project1/CVSROOT/passwd和/cvsroot/project2/CVSROOT/passwd 里给他加一个用户名和密码相同的用户即可。最后,我们试用一下:

  #> cvs -d :pserver:电子邮件地址已被防垃圾邮件功能所隐藏, 您需要把Javascript功能打开才能看到。:/cvsroot/project1 login

  敲入命令回车后提示输入trotter的密码,你按照自己设置的密码输入,如果没有什么错误信息出现就是成功了(我的机器IP地址是192.168.1.200)

  

上一个:新手入门:Linux下DNS创建与故障修复
下一个:Linux定时任务系统Cron入门

更多Unix/Linux疑问解答:
路由原理介绍
子网掩码快速算法
改变网络接口的速度和协商方式的工具miitool和ethtool
Loopback口的作用汇总
OSPF的童话
增强的ACL修改功能
三层交换机和路由器的比较
用三层交换机组建校园网
4到7层交换识别内容
SPARC中如何安装Linux系统(2)
SPARC中如何安装Linux系统(1)
用Swatch做Linux日志分析
实战多种Linux操作系统共存
浅析Linux系统帐户的管理和审计
Linux2.6对新型CPU的支持(2)
电脑通通透
玩转网络
IE/注册表
DOS/Win9x
Windows Xp
Windows 2000
Windows 2003
Windows Vista
Windows 2008
Windows7
Unix/Linux
苹果机Mac OS
windows8
安卓/Android
Windows10
如果你遇到操作系统难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,