waterflier's Blog

热爱生活,热爱编程
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Linux下CVS的配置

Posted on 2006-02-18 10:59  waterflier  阅读(2012)  评论(2编辑  收藏  举报

又忘记了...4个月前配的。今天搞半天都没搞上去。今天还要搞定将原来的仓库导入的问题...

这里找篇文章看起来比较全的...先看看。有补充的继续。

Trying 127.0.0.1...
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.

cvs [pserver aborted]: bad auth protocol start:

Connection closed by foreign host.
address@hidden sam]$ rpm -qa cvs
cvs-1.11.1p1-7
address@hidden sam]

address@hidden sam]$ cat /etc/xinetd.d/cvspserver
service cvspserver
{
disable = no
port = 2401
socket_type = stream
protocol = tcp
wait = no
user = root
passenv = PATH
server = /usr/bin/cvs
server_args = -f --allow-root=/repository
pserver
}

address@hidden sam]$ cat /etc/xinetd.conf
#
# Simple configuration file for xinetd
#
# Some defaults, and include /etc/xinetd.d/

defaults
{
instances = 60
log_type = SYSLOG authpriv
log_on_success = HOST PID
log_on_failure = HOST
cps = 25 30
}

includedir /etc/xinetd.d


-------------------------------------

下载完之后安装的步骤:

# tar xzvf cvs-1.11.tar.gz

# cd cvs-1.11

#./configure

# make

# make install

-----------------------

注解:cvs-1.11.tar.gz 是下载的文件名

#是根用户的标志,而且必须是在根用户之下


这个东西主要是为软件工程用的,在开发大型项目比如现在的开发源码项目,经常会有很多开发树,为了保证开发的进度,出了错能够即时的回到原有的状态, 而设计了这中代码管理工具.

 


我觉得m113是根本就没有作除 rpm -i cvs-xxx 以外的事


1.检查 /etc/services

vi /etc/services

:/cvspserver

如果找到的行前面并没有#,那么就不用修改了,否则去掉行首的#


2.在 /etc/xinetd.d 目录下创建一个文件,随便命名,比如 cvs

vi /etc/xinetd.d/cvs

在其中添上

service cvspserver

{

socket_type = stream

wait = no

user = root

env = HOME=

server = /usr/bin/cvs

server-tags = --allow-root=/home/cvsroot pserver

}


3.保存以后创建一个名为 cvs 的组和一个名为 cvsroot 的用户

groupadd cvs

useradd -g cvs -s /sbin/nologin cvsroot

cd /home/cvsroot

chown -R cvsroot /home/cvsroot


4.然后

vi /etc/profile

在其中添上

CVSROOT = /home/cvsroot

export CVSROOT


5.重启 xinetd:

/etc/init.d/xinetd restart


6.cvs init


这样CVS就可以用了


添加仓库: 进入到你的源码目录

cd /your/sources/path

然后执行

cvs export SOURCE_DIR_NAME Author Version

其中的SOURCE_DIR_NAME 就是你的工程在 CVSROOT 目录中保存的目录名, Author 为工程作者, Version 为你的工程发行版本号,必须以字母开头

 


1.如果系统没有安装CVS的,可以到 http://ftp.cvshome.org/ 去下载。已经安装的也建议删除旧的,下载一个新的。我的做法是:

下载 http://ftp.cvshome.org/linux/cvs-1.11.2-i386-linux-glibc-2.1.gz;

gzip -d cvs-1.11.2-i386-linux-glibc-2.1.gz;

mv cvs-1.11.2-i386-linux-glibc-2.1 /usr/local/bin/cvs;

chmod 755 /usr/local/bin/cvs;

这样做就是没有man pages。要不你可以下载rpm格式的。安装后应该有man pages。


至于CVS系统的安全,我只知道可以不使用 real user 登陆:

chmod 644 $CVSROOT/CVSROOT/config

vi $CVSROOT/CVSROOT/config

将第二行的

#SystemAuth = no

去掉注释,即改为

SystemAuth = no


然后,创建一个并没有根目录的用户,用户名随便,这个用户就是作为你的虚拟用户帐号的

useradd -g cvs -M username


接着将 shadow 复制到 $CVSROOT/CVSROOT, 并重命名为 passwd:

cp /etc/shadow $CVSROOT/CVSROOT/passwd


修改passwd文件:

chmod 0644 $CVSROOT/CVSROOT/passwd

vi $CVSROOT/CVSROOT/passwd

将 username 对应那一行以外的行全部去掉,然后去掉 username 所在行第二个冒号以后的所有内容,并添上字符串 cvsroot, 改为如下格式

username:sds54354jkbft576/fdsh:cvsroot


最后去掉在系统中添加的那个 username:

userdel -f username


好了,这样你的CVS用户就只能用 passwd 中规定的用户来登陆你的CVS SERVER了,并且登录以后自动映射为real user cvsroot

 

 

CVS的安全方面你说的找个文档我也看过,增加一个用户还好,多了之后,烦死了,我觉得应该可以连接ldap,或者mysql的数据库,作为用户的认证服务