1.2.6 配置cvs环境
在 cvs 管理员用户的HOME目录里有一个 CVSROOT 目录,这个目录里有三个配置文件,passwd, readers, writers,可以通过设置这三个文件来配置 CVS 服务器,下面分别介绍这几个文件的作用:
passwd:cvs 用户的用户列表文件,它的格式很象 shadow 文件:
{cvs 用户名}:[加密的口令]:[等效系统用户名]
readers:有 cvs 读权限的用户列表文件。是一个一维列表。在这个文件中的用户对 cvs只有读权限。
writers:有 cvs 写权限的用户的列表文件。和 readers 一样,是一个一维列表。在这个文件中的用户对 cvs 有写权限。
注意:如果用户同时在readers和writers文件存在,则这个用户只有read的权限而没有write的权限。
1、创建可以登陆cvs服务的用户及密码,需要创建文件passwd
vi /root/cvsroot/CVSROOT/passwd
文件内容如下:
smilings:xxxxx:cvsroot
chenxu:xxxxx:cvsroot
此文件的意思是smilings和chenxu两个用户可以登陆cvs服务器,登陆后其权限为用户cvsroot的权限
注意:cvs用户和服务器用户是可以不一样的
2、xxxxxx为密码,由以下文件生成:
vi /var/cvsroot/passwdgen.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、修改passwdgen.pl为可执行
#chmod +x passwdgen.pl
如果需要密码为:smilings,则敲入:
passwdgen.pl "smilings"
回车即可得到加密密码,用其替换passwd文件中的xxxxxx
4、编辑 writers 文件,加入下面几行:
smilings
chenxu
注:passwd文件的格式是:
以“:”为分隔,分为三部分:
第一部分是cvs帐号名(与系统帐号无关,也可与系统帐号名相同)
第二部分(可选项)是加密串,每个系统用户的加密串缺省是在/etc/shadow中,如果cvs帐号不是操作系统的帐号,shadow中是不会有cvs帐号的加密串的,这时必须手工为cvs帐号生成加密串,可以将其他系统帐号的密码修改成想要的密码(此时shadow文件的加密 串跟着改变),在取得加密串后改回去。当第二部分置空时,该帐号以任何口令均可登入cvs server
第三部分(可选项)是一个操作系统帐号, 如果登陆成功, cvs用户以此系统帐号的身份存取cvs中的源代码,这里的系统帐号是cvs权限控制的关键, 这个系统帐号有什么权限, 以此帐号身份存取cvs的cvs用户有相同的权限.。注意: 考虑到cvs用户是以某个系统帐号的身份运行的, 此系统帐号应当对repository下的相应目录有写的权限, 这样存在直接进入目录对文件进行修改的可能, 而这是cvs操作所不允许的,为了避免这种误操作, 建议在产生此系统帐号时使其shell为/bin/false, 并且不设置此帐号的密码,这样可以禁止直接以此系统帐号telnet或者ftp进入CVS Server。
另外,passwd文件中的用户不能重名,否则只有第一个有效。