Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1261276
  • 博文数量: 264
  • 博客积分: 10772
  • 博客等级: 上将
  • 技术积分: 2325
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-25 11:54
文章分类

全部博文(264)

文章存档

2012年(4)

2011年(51)

2010年(31)

2009年(57)

2008年(51)

2007年(70)

分类: LINUX

2010-08-26 13:19:44

安装与配置

首先安装 cvs ,一般服务器自带了cvs服务,版本随意,没什么差别

[root@RHEL ~]#rpm –ivh cvs-1.11.22-5.el5.i386.rpm

然后创建一个cvs用户组,并创建一个cvsroot用户

[root@RHEL ~]#groupadd cvs

[root@RHEL ~]#useradd –g cvs cvsroot


    为cvsroot设置密码

[root@RHEL ~]#passwd cvsroot


    更改cvsroot主目录的属性和从属关系,以便cvs用户组内成员能够查看并操作该目录下
面的内容:

[root@RHEL ~]# chown -R cvsroot.cvs /home/cvsroot

[root@RHEL ~]# chmod -R 775 /home/cvsroot/


接下来检查cvs服务是否为自动开启状态

[root@RHEL ~] cat /etc/services | grep cvspserver 

cvspserver 2401/tcp # CVS client/server operations 

cvspserver 2401/udp # CVS client/server operations

如果显示是上面的内容,说明服务已经包含cvs服务。

接下来修改cvs服务的配置文件

[root@RHEL ~]#vim /etc/xinetd.d/cvs



  几个需要说明的地方:
        1>把disable改为no ,
              2>server_args一项设定为cvs服务的主目录;
              3>bind 后面的是cvs服务绑定的ip地址。

示例如下:

service cvspserver
{
        disable = no
        port = 2401
        socket_type = stream
        protocol = tcp
        wait = no
        user = root
        passenv = PATH
        server = /usr/bin/cvs
        env = HOME=/var/cvs
        server_args = -f --allow-root=/home/cvsroot/ pserver
        bind = 192.168.18.3
}


     修改完成后,保存退出并重启服务

[root@RHEL ~]#/etc/init.d/xinetd restart

     
     接下来切换到cvsroot用户下进行操作

[root@RHEL ~]#su cvsroot


注册CVSROOT环境变量,然后初始化cvs服务

[cvsroot@RHEL ~]$export CVSROOT=/home/cvsroot/ 

[cvsroot@RHEL ~]$cvs init


这时候会在主目录下生成CVSROOT文件夹,里面存放的是配置文件。为了保证系统安全,最好禁止系统用户登录。修改config文件:

[cvsroot@RHEL ~]$ vim /home/cvsroot/CVSROOT/config

把里面的“SystemAuth=yes”的注释去掉,然后改为“SystemAuth=no

用户创建与编辑

接下来创建使用cvs服务的用户。首先以root身份创建一个cvspub用户,作为cvs服务用户在系统里的映射对象,也就是说cvs的用户在系统中并不存在,而是以cvspub的身份存取资料。

[root@RHEL ~]# useradd -g cvs -M -s /sbin/nologin cvspub


CVSROOT目录下创建passwd文件,用于保存cvs服务的用户名和密码,以便进行验证。这里的passwd文件给系统中的shadow文件一样,格式如下:

[cvs服务中的用户名]:[密码加密后的明文]:[映射的系统用户名]


可以用htpasswd命令进行转义,把用户密码的明文加密成为跟shadow文件里一样的字符串。示例如下:

[root@RHEL CVSROOT]# htpasswd –c passwd squall 

New password: 

Re-type new password: 

Adding password for user squall


这时squall这个用户以及对应密码转义后的明文被存放进在passwd文件里面了。这里“-c”参数是让系统在当前目录下创建名为“passwd”文件。后面的添加用户名和密码时就不用此参数了。

我们可以查看一下passwd文件:

[root@RHEL CVSROOT]#cat passwd 

Squall: uAiK7kjttgpvQ


同样的方法,可以创建其他的几个帐号,如idread, idwritecvstest。创建完全部账户后,修改passwd文件,在每个一行的后面都加上需要映射的系统帐户。这里我用的是cvspub。注意中间间隔的冒号“:”,修改后的示例如下:

squall:ogY2Wh7CWZZl.:cvspub 

idread:uAiK7kjttgpvQ:cvspub 

idwrite:oxSy4BYQedS2Y:cvspub 

cvstest::cvspub

这里可以看到,我添加了一个测试用户cvstest,这一行密码段是空的,也就是该用户不需要密码就可以进行登录和相关操作。

接下来创建readers文件,用来控制“只读“权限,它的优先级最高,只要里面有的用户,则只能读,不能写入,即使在控制写入权限的文件writers中也存在该用户。一个用户名一行,示例如下:

cvstest 

idread

然后就是控释写入权限的文件writers,其包含的用户既能读取也能写入,格式跟readers文件一样,一行一个用户名,示例如下:

squall 

idwrit

最后修改几个配置文件的属性和所有者,config,readers,writers三个文件的操作都一样:

[root@RHEL ~]#chmod 640 config 

[root@RHEL ~]#chown cvsroot.cvs config

   接下来就是要把cvs用户都加入cvs用户组中,编辑group文件,在里面找到cvs用户组,并在行末尾加上用户名,用户名之间用逗号隔开,示例如下:

[root@RHEL ~]#vim /etc/group cvs:x:501:cvsroot,cvstest,squall,idread,idwrite,cvspub

保存并退出,然后重启服务


安全相关的设定

这里还需要注意两点:

一个是防火墙,系统上防火墙的2401端口是否都打开,包括tcpudp协议都要开放,具体设定在"System"->"Administration"->"Security Level and Firewall"里添加允许2401端口。

还有就是selinux的安全设置,比较新的系统都要设定,禁用selinuxcvs服务的保护,具体修改在"Modify SELinux policy"->"SELinux Service Protection"->"Disable ELinux Service Protection for cvs"。强烈不建议关闭selinux!

接下来你就可以用创建的cvs用户登录并进行相应操作了。

 

附:防火墙命令行操作方法

检查防火墙的设置,看2401端口是否打开打开

#/sbin/iptables -L&line;grep cvs

如果显示

ACCEPT tcp -- anywhere anywhere tcp dpt:cvspserver

则说明端口已经打开

否则就必须打开防火墙2401端口 

#/sbin/iptables -A INPUT -i eth0 -p tcp --dport 2401 -j ACCEPT

#/sbin/service iptables save

 TAG cvs Linux redhat
阅读(899) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~