- 论坛徽章:
- 0
|
安装与配置
首先安装 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, idwrite,cvstest。创建完全部账户后,修改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
保存并退出,然后重启服务。
[color="#0000FF"]
[color="#0000FF"]
[color="#000102"]安全相关的设定
[color="#000102"]
这里还需要注意两点:
一个是防火墙,系统上防火墙的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端口是否打开打开
[color="#0000FF"]#/sbin/iptables -L&line;grep cvs
如果显示
[color="#0000FF"]ACCEPT tcp -- anywhere anywhere tcp dpt:cvspserver
则说明端口已经打开
否则就必须打开防火墙2401端口
#/sbin/iptables -A INPUT -i eth0 -p tcp --dport 2401 -j ACCEPT
#/sbin/service iptables save
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/34010/showart_1979625.html |
|