今天配置CVS服务器得时候,才突然发现一个问题,在本论坛精华区里面的CVS服务器配置过程有一个错误!!居然没有人发现?!
重新写一下CVS服务器的配置过程:
* 检查 /etc/services
首先键入 vi /etc/services
然后键入 /cvspserver
如果找到的行前面并没有#,那么就不用修改了,否则去掉行首的#
* 在 /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
server_args = --allow-root=/home/cvsroot pserver
}
* 保存以后创建一个名为 cvs 的组和一个名为 cvsroot 的用户
groupadd cvs
useradd -g cvs -s /sbin/nologin cvsroot
* 然后
vi /etc/profile
在其中添上
export CVSROOT = /home/cvsroot
* 重启 xinetd:
/etc/init.d/xinetd restart
* 初始化CVS仓库
cvs -d /home/cvsroot init
这样CVS就可以用了
如果不修改以上的错误,就会在cvs login的时候出现:cvs [login aborted]: unrecognized auth response from localhost: Usage: cvs [cvs-options] command [command-options-and-arguments] 这样的错误提示。
使用提示:
* 添加仓库: 进入到你的源码目录
cd /your/sources/path
然后执行
cvs export SOURCE_DIR_NAME Author Version
其中的SOURCE_DIR_NAME 就是你的工程在 CVSROOT 目录中保存的目录名, Author 为工程作者, Version 为你的工程发行版本号,必须以字母开头
* 添加匿名只读用户:
useradd -g cvs -M -s /sbin/nologin anonymous
chmod 644 /home/cvsroot/CVSROOT/passwd
echo "anonymous::anonymous" >> /home/cvsroot/CVSROOT/passwd
chmod 444 /home/cvsroot/CVSROOT/passwd
echo "anonymous" >> /home/cvsroot/CVSROOT/readers
chmod 444 /home/cvsroot/readers
* 防止CVSROOT被下载:
chmod 644 /home/cvsroot/CVSROOT/modules
echo "CVSROOT -a" >> /home/cvsroot/CVSROOT/modules
chmod 444 /home/cvsroot/CVSROOT/modules
* 不使用 real system user 登陆:
chmod 644 $CVSROOT/CVSROOT/config
vi $CVSROOT/CVSROOT/config
将第二行的
#SystemAuth = no
去掉注释,即改为
SystemAuth = no
以上内容在RedHat ES 3 U2上测试通过