Linux下配置cvs
时间:2007-01-06 来源:yzgname
一、安装及初步设置
1、Setup CVS
2、建立及初始化CVS工作目录
#mkdir /src
#msdir /src/cvslib
#cvs -d /src/cvslib init //初始化cvs工作目录,可以看到出现CVSROOT目录,表示初始化成功。
3、建立系统用户,包括管理员组和普通用户组两种权限。 #groupadd (CVSAdmin) //建立管理员组
#groupadd (CVSUser) //建立普通用户组
#useradd -g (CVSUser) -M (CVSUser_Sys1)
//不用添加Home目录(-M)而直接添加拥有访问CVS权力的系统用户CVSUser_Sys1,属于CVSUser组
#passwd CVSUser1
//设定CVSUser_Sys1的系统登陆密码(应该可以对真正的CVS用户透明)
4、设定各组系统用户权限,作为CVS不同类型用户的代表 #chgrp -R (CVSUser) /src/cvslib //?添加新的工程是否直接在此处修改权限?
#chmod -R u=rx,g=rx /src/cvslib //设定组用户权限
此外: <1>CVS用户(组)必须对/src/cvslib目录有执行权(列表权)和写权利,可以没有读权利; #chmod u=wx,g=wx /src/cvslib (o-other不改变)
<2>CVS用户(组)必须拥有对/src/cvslib/CVSROOT目录及其中所有文件的读权限(r)和列表权限(x); #chmod u=rx,g=rx /src/cvslib/CVSROOT (o-other不改变)
<3>CVS用户(组)必须拥有对/src/cvslib/CVSROOT目录下history文件的写权限; #chmod u+w,g+w /src/cvslib/CVSROOT/history (o-other不改变)
<4>CVS用户(组)如果希望拥有操作(checkout等)某个项目(CVS中称为模块)代码等资料的权利,必须拥有对该目录及其子目录的rwx权限。否则在操作时,一旦遇到没有该用户权限的文件或目录,则操作中断。 #chmod -R u+rwx,g+rwx (/project)
5、配置CVS口令服务器 <1>在CVS服务器的/etc/services文件中添加新服务端口:(目前的Linux都已经预先设定好) cvspserver 2401/tcp <2>在/etc/xinetd.conf/目录中添加一个新文件,名称随意,内容为: service cvspserver
{
flags = REUSE
socket_type = stream
wait = no user = root //?如何设置多个用户? //必须为root么?(必须为root,不能用其它用户名)
server = /usr/bin/cvs //cvs的安装目录
server_args = -f --allow-root=/src/cvs pserver //cvs文件的保存目录, 且--allow-root中间的横线不能分开
disable = no
log_on_failure += USERID
}
如果用的是 inetd 的系统,在 /etc/inetd.conf 里加入:
cvsserver stream tcp nowait root /usr/bin/cvs cvs -f --allow-root=/home/cvsroot pserver
<3>改变CVSROOT目录下的config文件访问属性,使其可被用户修改。去掉 /src/cvslib/CVSROOT/config中的 #SystemAuth = no注释符号#,使其有效,必须在passwd中存在用户名称和密码的才可以登陆,而不用系统为该用户提供的密码校验。即虽然用户名和系统的一样,但是登陆的密码是用htpasswd时定义的密码。 <4>重新起动CVS口令服务器
#/etc/rc.d/init.d/xinetd restart <5>检查CVSServer服务是否已经启动
#netstat -l |grep cvspserver
应该有如下结果:
tcp 0 0 *:cvspserver *:* LISTEN
6、创建用于外部访问CVS服务器的用户利用Linux的加密命令对CVS外部访问用户的密码进行加密 <1> 创建/src/cvslib/CVSROOT/passwd (注意必须名字为passwd,不能用其它文件名称) //用于保存用户名、加密后的密码及该用户具有那个系统用户的权限的文件 <2> #htpasswd -c /src/cvslib/CVSROOT/(passwd) (CVSUser_connect1)
//输入密码后,passwd格式为[用户名:加密后的密码明文] [cvstest:vORwxVRU8zDvw]
//需要修改为[用户名:加密后的密码明文:系统用户]的格式 [cvstest:vORwxVRU8zDvw:CVSUser_Sys1]
//这样就建立了外部访问用户
3、建立系统用户,包括管理员组和普通用户组两种权限。 #groupadd (CVSAdmin) //建立管理员组
#groupadd (CVSUser) //建立普通用户组
#useradd -g (CVSUser) -M (CVSUser_Sys1)
//不用添加Home目录(-M)而直接添加拥有访问CVS权力的系统用户CVSUser_Sys1,属于CVSUser组
#passwd CVSUser1
//设定CVSUser_Sys1的系统登陆密码(应该可以对真正的CVS用户透明)
4、设定各组系统用户权限,作为CVS不同类型用户的代表 #chgrp -R (CVSUser) /src/cvslib //?添加新的工程是否直接在此处修改权限?
#chmod -R u=rx,g=rx /src/cvslib //设定组用户权限
此外: <1>CVS用户(组)必须对/src/cvslib目录有执行权(列表权)和写权利,可以没有读权利; #chmod u=wx,g=wx /src/cvslib (o-other不改变)
<2>CVS用户(组)必须拥有对/src/cvslib/CVSROOT目录及其中所有文件的读权限(r)和列表权限(x); #chmod u=rx,g=rx /src/cvslib/CVSROOT (o-other不改变)
<3>CVS用户(组)必须拥有对/src/cvslib/CVSROOT目录下history文件的写权限; #chmod u+w,g+w /src/cvslib/CVSROOT/history (o-other不改变)
<4>CVS用户(组)如果希望拥有操作(checkout等)某个项目(CVS中称为模块)代码等资料的权利,必须拥有对该目录及其子目录的rwx权限。否则在操作时,一旦遇到没有该用户权限的文件或目录,则操作中断。 #chmod -R u+rwx,g+rwx (/project)
5、配置CVS口令服务器 <1>在CVS服务器的/etc/services文件中添加新服务端口:(目前的Linux都已经预先设定好) cvspserver 2401/tcp <2>在/etc/xinetd.conf/目录中添加一个新文件,名称随意,内容为: service cvspserver
{
flags = REUSE
socket_type = stream
wait = no user = root //?如何设置多个用户? //必须为root么?(必须为root,不能用其它用户名)
server = /usr/bin/cvs //cvs的安装目录
server_args = -f --allow-root=/src/cvs pserver //cvs文件的保存目录, 且--allow-root中间的横线不能分开
disable = no
log_on_failure += USERID
}
如果用的是 inetd 的系统,在 /etc/inetd.conf 里加入:
cvsserver stream tcp nowait root /usr/bin/cvs cvs -f --allow-root=/home/cvsroot pserver
<3>改变CVSROOT目录下的config文件访问属性,使其可被用户修改。去掉 /src/cvslib/CVSROOT/config中的 #SystemAuth = no注释符号#,使其有效,必须在passwd中存在用户名称和密码的才可以登陆,而不用系统为该用户提供的密码校验。即虽然用户名和系统的一样,但是登陆的密码是用htpasswd时定义的密码。 <4>重新起动CVS口令服务器
#/etc/rc.d/init.d/xinetd restart <5>检查CVSServer服务是否已经启动
#netstat -l |grep cvspserver
应该有如下结果:
tcp 0 0 *:cvspserver *:* LISTEN
6、创建用于外部访问CVS服务器的用户利用Linux的加密命令对CVS外部访问用户的密码进行加密 <1> 创建/src/cvslib/CVSROOT/passwd (注意必须名字为passwd,不能用其它文件名称) //用于保存用户名、加密后的密码及该用户具有那个系统用户的权限的文件 <2> #htpasswd -c /src/cvslib/CVSROOT/(passwd) (CVSUser_connect1)
//输入密码后,passwd格式为[用户名:加密后的密码明文] [cvstest:vORwxVRU8zDvw]
//需要修改为[用户名:加密后的密码明文:系统用户]的格式 [cvstest:vORwxVRU8zDvw:CVSUser_Sys1]
//这样就建立了外部访问用户
相关阅读 更多 +