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文件中的用戶不能重名,否則只有第一個有效。