linux下CVS安装配置

发布时间:2016-12-11 10:29:24 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"linux下CVS安装配置",主要涉及到linux下CVS安装配置方面的内容,对于linux下CVS安装配置感兴趣的同学可以参考一下。

一、安装和初始化cvs服务器 1.查看是否已安装cvs rpm -q cvs 如果未安装, yum install cvs 2、创建cvs用户组与cvs用户 root用户下执行以下命令: groupadd cvsadmin useradd -g cvsadmin cvsroot passwd cvsroot 3、创建第一个cvsroot(代码目录) root用户下执行: mkdir -p /usr/cvsroot/prj-name 此处可改为你想要的cvsroot路径和目录名,prj-name为项目名 chown -R cvsroot.cvsadmin /usr/cvsroot  更改cvsroot的所有权,以便迁入项目 chmod 770/usr/cvsroot 更改文件夹的权限 4、初始化CVS 需要在cvsroot用户下执行(root用户也可) su - cvsroot cvs -d /usr/cvsroot/prj-name init 在刚才创建的cvsroot目录中创建代码仓库。执行完成后会在prj-name/目录下自动增加一个目录CVSROOT/ *请注意,这里需要写上仓库的绝对路径,不能写当前路径,不然无法创建仓库 5、定义cvs服务器: 在/etc/xinetd.d/目录下创建文件cvspserver(默认安装cvs服务之后一般就会存在了,无须手动创建) 1)编辑cvspserver文件,内容如下: service cvspserver {     disable = no     socket_type = stream     flags = REUSE     wait = no     user = root     server = /usr/bin/cvs     server_args = -f --allow-root=/usr/cvsroot/prj-name pserver         log_on_failure += USERID } 编辑文件时要注意书写格式,所有“=”号两边都要有一个空格(除了root=/仓库资源路径),否则服务不能正常启动。only_from是用来限制访问的,可以根据实际情况不写或者修改。server_args为cvsroot仓库资源路径,按实际情况填写,可以在这里填写多个cvsroot,相关设置下文将会逐一介绍。其他地方默认即可~~。 注意:如果路径/usr/cvsroot/prj-name与上面创建的不一致,或者为/usr/cvsroot/prj-name/,将出现no such repository问题。 2)修改该文件权限: chmod 644 cvspserver 3)重启xinetd服务: /etc/rc.d/init.d/xinetd restart ------------------------------- 如果输入以上命令显示:未知的服务,说明未安装xinetd,也可以用命令rpm -q xinetd看是否已安装xinetd 如果没有安装,可以使用yum install xinetd 在线安装 然后使用命令service xinetd start,启动xinetd ------------------------------- 4)察看cvs服务器是否已经运行: netstat -l |grep cvspserver tcp 0 0 *:cvspserver *:* LISTEN 则说明cvs服务器已经运行。 到此cvs服务器已经搭建完成,现在已经可以通过用户cvsroot来远程访问/usr/cvsroot/prj-name了,但是为了更科学有效地管理,下面将介绍如何新建其他用于访问cvs服务器用户。 二、cvs用户管理 初始化/usr/cvsroot/prj-name后,在/usr/cvsroot/prj-name目录里面有一个CVSROOT目录,该目录中有三个用户配置文件:passwd、writers、readers,我们可以通过这三个文件对用户的访问权限进行细分管理,下面详细介绍如何配合这三个文件对用户进行管理。 1、用户配置文件格式介绍: passwd:cvs 用户的用户列表文件,它的格式很象/etc/passwd文件          [cvs用户名]:[加密口令]:[等效的系统用户] readers:有cvs读权限的用户列表文件      一个简单的一维用户列表,一个用户名占一行,由上往下写就OK writers:有cvs写权限的用户的列表文件      一个简单的一维用户列表,一个用户名占一行,由上往下写就OK 2、手动创建用户配置文件 刚刚安装完cvs服务这三个文件可能不存在,我们可以通过手动创建 #su - cvsroot #cd /usr/cvsroot/prj-name/CVSROOT  进入CVSROOT目录 #touch passwd writers readers  手动创建用户配置文件 #chmod 770 passwd writers readers  修改用户配置文件的权限和属性 3、新建一个cvs用户 #cd /usr/cvsroot/prj-name/CVSROOT  进入CVSROOT目录 #htpasswd passwd user1    通过对passwd文件加密验证的方式创建cvs用户 New password:xxx  输入新建用户密码 Re-type new password:xxx  确认密码 如果要修改user1的密码,执行同样指令htpasswd passwd user1,输入新的密码即可 ------------------------------- 如果htpasswd命令不能执行,只需安装httpd即可 rpm -q httpd yum install httpd ------------------------------- 4、编辑用户 #cat passwd  查看用户列表文件 user1:Yzuvh/x45/EEU  如例所示用户已经创建并加密 #vi passwd  编辑用户 user1:Yzuvh/x45/EEU:cvsroot  在该用户密码后添加冒号以及cvsroot的等效系统用户 ------------------------------- 这一步很关键,如果不加:cvsroot,在后面使用命令行方式测试登录时,是能够登录成功的。 但是通过eclipse登录则会报错:I/O exception occurred: Connection refused: Fatal error, aborting. cvslb: no such system user ------------------------------- 保存退出,至此便完成了cvs新用户的创建,可以通过客户端工具登录cvs服务器对cvs资源库进行访问。 5、测试登录 #cvs -d :pserver:[email protected]:/usr/cvsroot/prj-name login Logging in to :pserver:[email protected]:2401/usr/cvsroot/prj-name CVS password:  敲入命令回车后提示输入用户名的密码,输入自己设置的密码,如果没有什么错误信息出现就是成功了 ------------------------------- 如果登陆不成功,出现下面错误 cvs [login aborted]: unrecognized auth response from localhost: cvs pserver: cannot open /usr/cvsroot/prj-name/CVSROOT/config: Permission denied 执行下面指令即可: # setenforce 0 setenforce是Linux的selinux防火墙配置命令。是单词set(设置)和enforce(执行)连写,另一个命令getenforce可查看selinux的状态。 /usr/bin/setenforce 修改SELinux的实时运行模式setenforce 1 设置SELinux 成为enforcing模式(开启)setenforce 0 设置SELinux 成为permissive模式(临时关闭)如果要彻底禁用SELinux 需要在/etc/sysconfig/selinux中设置参数selinux=0 ,或者在/etc/grub.conf中添加这个参数/usr/bin/setstatus -v ------------------------------- 6、删除用户 删除用户同样轻松,只需要编辑passwd文件,将要相应的用户条目删除后保存退出即可,这里就不多作介绍了。 7、给各cvs用户分配权限 如果新建用户后没有将该用户加入到writers或readers表,那么该用户默认拥有所有权限,包括check out、commit、delete。 例如想让user1只有读cvs资源库的权限,可以编辑readers表,加入user1 例如想让user2有读写cvs资源库的权限,可以编辑writers表,加入user2 #vi readers user1 user3 user4 ... #vi writers user2 user5 ... 三、为cvs服务器建立多个源代码仓库 刚刚讲述了通过修改cvspserver来配置cvsroot的路径,但在软件公司会存在多个cvsroot的需求,要求每个资源库独立分开,互相不能访问,可以通过两种方法实现。 1.修改cvspserver文件,增加资源库的访问路径,操作如下: service cvspserver {     disable = no     socket_type = stream     flags = REUSE     wait = no     user = root     server = /usr/bin/cvs     server_args = -f --allow-root=/usr/cvsroot/prj-name --allow-root=/usr/cvsroot/prj-123 --allow-root=/usr/cvsroot/prj-456 pserver         log_on_failure += USERID     only_from = 192.168.0.0/24 } 由上可见增加资源库路径实际上就是修改server_args项,前提个资源库的路径是存在的。 2.cvspserver文件重定向 由于xinetd中的server_args长度有限制,我们可以进行以下操作对cvspserver文件进行重定向 1)修改cvspserver文件如下: service cvspserver {     disable = no     socket_type = stream     flags = REUSE     wait = no     user = root     #server = /usr/bin/cvs     server = /usr/local/bin/cvs.run     #server_args = -f --allow-root=/usr/cvsroot/prj-name --allow-root=/usr/cvsroot/prj-123 --allow-root=/usr/cvsroot/prj-456 pserver      #log_on_failure += USERID     #only_from = 192.168.0.0/24 } 避免引起其他无法预料的出错,将原来的server、server_args、log_on_failure等配置项注释掉,新添加一行代码 server = /usr/local/bin/cvs.run(路径随意) 2)创建并编写cvs.run文件 #cd /usr/local/bin #touch cvs.run #chmod 770 cvs.run  cvs.run必须为可执行文件 #vi cvs.run 手动编写cvs.run文件内容如下: #!/bin/bash /usr/bin/cvs -f \ --allow-root=/usr/cvsapusic \ --allow-root=/usr/cvsesb \ --allow-root=/usr/cvsstudio \ pserver 可以在cvs.run文件中填写所有cvs源代码仓库路径,写完保存退出,这样cvs所有的资源路径就集中在一个文件管理。 四、修改cvs服务监听端口 默认cvs服务的监听端口号是2401,像sqlserver著名的1433端口一样是黑客攻击的必然选择。如果cvs资源库是放在互联网上或其他安全保障相对较弱的地方,那修改cvs服务的监听端口号就很有必要。 1.查看配置文件 #vi /etc/services 查找一下,看是否有关于cvs服务的代码: cvspserver      2401/tcp            # CVS client/server operations cvspserver      2401/udp            # CVS client/server operations 这两行在cvs服务安装完成时就会存在,如果没有可以手动添加,我们可以清楚看到cvs服务的监听端口是默认的2401。 2.修改cvs服务监听端口 #vi /etc/services 修改cvspserver的监听端口,将2401改成与系统其他端口不冲突,自己喜欢的端口号就可以了。 3.重启xinetd服务 #service xinetd restart 完成 以上内容即有参考如下链接,也有自己实际使用中的总结 参考:http://yaksayoo.blog.51cto.com/510938/139954 参考资料:http://blog.chinaunix.net/uid-20640366-id-1908902.html http://os.chinaunix.net/a2007/1008/976/000000976453.shtml

上一篇:面试经典算法1之交换排序
下一篇:函数传参的一个问题

相关文章

相关评论