文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>Slackware下CVS服务器的建立和配置

Slackware下CVS服务器的建立和配置

时间:2007-04-27  来源:lagvin

  Slackware下CVS服务器的建立和配置   一、系统环境: 操作系统:slackware 11.0
CVS版本 :1.11.22,slackware 11.0下默认的版本
Shell  :BASH
说明   :以下说明中,"root#"表示超级用户运行的命令,"user$"表示用户"user"运行的命令,其它表示命令内容。

二、CVS服务器的安装:
2.1、建立用户组cvs:
root# groupadd cvs
2.2、建立cvs组的用户cvsroot以及其所属的目录:
root# useradd -g cvs -G cvs -d /home/cvsroot cvsroot
2.3、为用户cvsroot添加密码:
root# passwd cvsroot
root# <password>
2.4、改变/home/cvsroot的目录属性:
root# chmod -R 775 /home/cvsroot
2.5、改变用户登陆身份:
root# su cvsroot
root# <password>
2.6、创建资源库(repository)目录(这里创建两个: project和test)
cvsroot$ cd ~
cvsroot$ mkdir test
cvsroot$ mkdir project
2.7、初始化资源库,使之成为CVS的respository:
cvsroot$ cvs -d /home/cvsroot/test init
cvsroot$ cvs -d /home/cvsroot/project init
cvsroot$ chmod -R 775 ./test/ ./project
2.8、退出当前登陆用户cvsroot,切换到root用户身份:
cvsroot$ exit
2.9、建立CVS服务启动文件,在Slackware下默认使用inetd方式
root# vi /etc/inetd.conf
在文件尾添加:
# cvs server
cvspserver stream tcp nowait root /usr/bin/cvs cvs -f --allow-root=/home/cvsroot/project --allow-root=/home/cvsroot/test pserver
注意:上面一行必须在同一行内 2.10、加入系统服务: 查看是否已加入系统服务:
root# cat /etc/services |grep cvspserver
如果出现:
cvspserver      2401/tcp   #CVS network server
cvspserver      2401/udp   #CVS network server
就说明系统已自动加入该服务,否则,则添加上面两行到/etc/services
2.11、重启cvs服务:
root# /etc/rc.d/rc.inetd restart
2.12、检查cvspserver服务是否已经启动:
root# netstat -l |grep cvspserver
如果有以下结果,则表示启动成功:
tcp        0      0 *:cvspserver            *:*                     LISTEN

三、CVS服务的用户管理
下面为2.7步建立的两个资源库test和project建立cvs用户
3.1、创建可以登陆cvs服务器的用户名和密码:
root# su cvsroot
cvsroot$ cd ~
cvsroot$ vi test/CVSROOT/passwd
pub:
gavin:********:cvsroot
test:********:cvsroot
cvsroot$ cp test/CVSROOT/passwd project/CVSROOT/ #这里两个资源库都使用相同的用户,也可以分别指定
这里说一下passwd文件的格式和作用:
(1)格式:
  cvs用户名:加密密码:系统用户
  第二、第三段(即密码和系统用户)可以省略,省略时其前导":"符号要去掉,否则表示"空串"
(2)作用:
  将cvs用户映射到系统用户,这样就可以通过系统用户的权限来分配给cvs用户不同的权限,而不需要让用户知道系统用户名和密码。
(3)注意: 
  A. passwd文件默认并不存在,需要自己创建。
  B. 密码字段一定要用加密的密码,而不能用明文密码,而登陆的时候则用明文密码。

3.2、 为passwd的密码字段添加加密密码: 
3.2.1. 生成加密文件:
cvsroot$ vi genpasswd.pl
#!/usr/bin/perl
srand (time());
my $randletter = "(int (rand (26)) + (int (rand (1) + .5) % 2 ? 65 : 97))";
my $salt = sprintf ("%c%c", eval $randletter, eval $randletter);
my $plaintext = shift;
my $crypttext = crypt ($plaintext, $salt);
print "${crypttext} ";
3.2.2. 设置加密文件为可执行:
cvsroot$ chmod a+x genpasswd.pl
3.2.3. 将明文密码加密:
如果想在用户登陆时输入密码:"abcd1234",则运行以下命令:
cvsroot$ ./genpasswd.pl "abcd1234"
回车即可得到加密密码,将之替换passwd文件中的********,
那么cvs用户登陆时输入明文密码"abcd1234"则可登陆。
这里将得到的加密密码添加到用户gavin的密码字段,则cvs用户gavin登陆时用明文密码"abcd1234"。
3.3、配置读写权限
 设置用户的读写权限,要创建CVSROOT目录下的readers和writers文件(默认没有的)。
readers文件记录拥有只读权限的用户名
writers文件记录拥有读写权限的用户名
注意:readers文件比writers优先,即出现在readers中的用户将会是只读的,不管
writers文件中是否存在该用户。
cvsroot$ vi test/CVSROOT/readers
pub
cvsroot$ cp test/CVSROOT/readers project/CVSROOT/
cvsroot$ vi test/CVSROOT/writers
gavin
test
cvsroot$ cp test/CVSROOT/writers project/CVSROOT/
3.4、彻底防止使用系统帐号登陆: 要编辑CVSROOT目录下的config文件,改
#SystemAuth=yes
为:
SystemAuth=no
至此,CVS服务器的安装、用户配置就算完成了,下面来测试一下:
四、测试安装配置
cvs登陆命令为:
cvs -d :pserver:cvsuser@serveraddr:respositorydir login
如在我测试的环境下用以下命令:
cvs -d :pserver:[email protected]:/home/cvsroot/test login
cvsroot$ <password> #输入明文密码"abcd1234"
运行命令之后,如果什么也没提示,那就表示成功了,否则,根据错误找原因。
五、注意事项:
5.1、在2.9步中,添加的命令:
cvspserver stream tcp nowait root /usr/bin/cvs cvs -f --allow-root=/home/cvsroot/project --allow-root=/home/cvsroot/test pserver
必须在同一行,否则登陆时会出现以下错误:
cvs [login aborted]: reading from server: Connection reset by peer
这是因为cvspserver启动不正确,虽然它已经在监听Connection,但cvs服务还没启动。
5.2、在3.2步设置passwd文件的密码字段时,密码一定要用加密密码(加密方法见3.2步),
而登陆密码则用明文密码。否则会出现以下错误:
cvs login: authorization failed: server 192.168.1.15 rejected access to /home/cvsroot/test for user gavin

六、心得体会:
在配置cvs服务的过程中,5.1和5.2的两个错误折腾了我很久。但也是在解决这两个问题的过程中,学到了很多东西,
包括CVS服务的原理和内部工作过程等。此外,也加深了对Linux权限管理系统的理解。
  七、疑惑: 虽然配置过程中对大多数过程都已明其然,但还有两个问题没有搞明白,就是:
1、将cvs虚拟用户映射为系统用户的时候(3.2步),为何不用系统用户的密码认证?
2、为什么passwd的密码字段一定要用加密密码?这个加密密码一定要用genpasswd.pl文件来生成么?或者随便一个都可以?登陆的时候用得却是明文密码,它又是如何与passwd文件中加密密码匹配的?
 
希望知情者告知,万分感谢! (可以留言,也可以发到邮箱:gavin-097[AT]163.com)
相关阅读 更多 +
排行榜 更多 +
僵尸猎手小明

僵尸猎手小明

动作格斗 下载
狩猎波比

狩猎波比

动作格斗 下载
花海相机

花海相机

图像拍照 下载