分类: 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 ~]#passwd 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 |
|
[root@RHEL ~]#/etc/init.d/xinetd restart |
[root@RHEL ~]#su cvsroot |
注册CVSROOT环境变量,
[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文件一样,格式如下:
|
可以用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, idwrite,cvstest。
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文件,
[root@RHEL ~]#vim /etc/group cvs:x:501:cvsroot,cvstest,squall,idread,idwrite,cvspub |
保存并退出,然后重启服务。
安全相关的设定
这里还需要注意两点:
一个是防火墙,系统上防火墙的2401端口是否都打开,包括tcp和udp协议都要开放,具体设定在"System"->"Administration"->"Security
Level and Firewall"里添加允许2401端口。
还有就是selinux的安全设置,比较新的系统都要设定,禁用selinux对cvs服务的保护,具体修改在"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