1.2.6 配置cvs環(huán)境
在 cvs 管理員用戶的HOME目錄里有一個 CVSROOT 目錄,這個目錄里有三個配置文件,passwd, readers, writers,可以通過設(shè)置這三個文件來配置 CVS 服務(wù)器,下面分別介紹這幾個文件的作用:
passwd:cvs 用戶的用戶列表文件,它的格式很象 shadow 文件:
{cvs 用戶名}:[加密的口令]:[等效系統(tǒng)用戶名]
readers:有 cvs 讀權(quán)限的用戶列表文件。是一個一維列表。在這個文件中的用戶對 cvs只有讀權(quán)限。
writers:有 cvs 寫權(quán)限的用戶的列表文件。和 readers 一樣,是一個一維列表。在這個文件中的用戶對 cvs 有寫權(quán)限。
注意:如果用戶同時在readers和writers文件存在,則這個用戶只有read的權(quán)限而沒有write的權(quán)限。
1、創(chuàng)建可以登陸cvs服務(wù)的用戶及密碼,需要創(chuàng)建文件passwd
vi /root/cvsroot/CVSROOT/passwd
文件內(nèi)容如下:
smilings:xxxxx:cvsroot
chenxu:xxxxx:cvsroot
此文件的意思是smilings和chenxu兩個用戶可以登陸cvs服務(wù)器,登陸后其權(quán)限為用戶cvsroot的權(quán)限
注意:cvs用戶和服務(wù)器用戶是可以不一樣的
2、xxxxxx為密碼,由以下文件生成:
vi /var/cvsroot/passwdgen.pl
文件內(nèi)容:
#!/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為可執(zhí)行
#chmod +x passwdgen.pl
如果需要密碼為:smilings,則敲入:
passwdgen.pl "smilings"
回車即可得到加密密碼,用其替換passwd文件中的xxxxxx
4、編輯 writers 文件,加入下面幾行:
smilings
chenxu
注:passwd文件的格式是:
以“:”為分隔,分為三部分:
第一部分是cvs帳號名(與系統(tǒng)帳號無關(guān),也可與系統(tǒng)帳號名相同)
第二部分(可選項)是加密串,每個系統(tǒng)用戶的加密串缺省是在/etc/shadow中,如果cvs帳號不是操作系統(tǒng)的帳號,shadow中是不會有cvs帳號的加密串的,這時必須手工為cvs帳號生成加密串,可以將其他系統(tǒng)帳號的密碼修改成想要的密碼(此時shadow文件的加密 串跟著改變),在取得加密串后改回去。當?shù)诙糠种每諘r,該帳號以任何口令均可登入cvs server
第三部分(可選項)是一個操作系統(tǒng)帳號, 如果登陸成功, cvs用戶以此系統(tǒng)帳號的身份存取cvs中的源代碼,這里的系統(tǒng)帳號是cvs權(quán)限控制的關(guān)鍵, 這個系統(tǒng)帳號有什么權(quán)限, 以此帳號身份存取cvs的cvs用戶有相同的權(quán)限.。注意: 考慮到cvs用戶是以某個系統(tǒng)帳號的身份運行的, 此系統(tǒng)帳號應(yīng)當對repository下的相應(yīng)目錄有寫的權(quán)限, 這樣存在直接進入目錄對文件進行修改的可能, 而這是cvs操作所不允許的,為了避免這種誤操作, 建議在產(chǎn)生此系統(tǒng)帳號時使其shell為/bin/false, 并且不設(shè)置此帳號的密碼,這樣可以禁止直接以此系統(tǒng)帳號telnet或者ftp進入CVS Server。
另外,passwd文件中的用戶不能重名,否則只有第一個有效。