A. 額外進階設定:pserver (Password Server) 帳號/密碼設定
1) 為避免其它人經由 cvs 來 try password,建議可以 cvs 帳號和系統帳號分開。
# vi /opt/cvs/CVSROOT/passwd <- 該檔原本並不存在
格式為:帳號:密碼:系統帳號
ex: jdev_user:xxxxxx:usercvs
a. jdev_user 為登入 cvs 的帳號,/etc/passwd 內不需要有這個帳號
b. xxxxxx 為登入的密碼,經由 md5 編碼過,由此密碼可以建立 /opt/cvs/passwdgen.pl 來產生,如果需要密碼為:123456,則敲入# /opt/cvs/CVSROOT/passwdgen.pl "123456" ,回傳即可得到加密密碼,用其替換 passwd 檔中的 xxxxxx
c. cvs 登入後對應到 /etc/passwd 內這個帳號的權限
/opt/cvs/passwdgen.pl 檔案建立:
# su - cvs
> vi /opt/cvs/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}\n";
改變權限及owner
#chmod 755 passwdgen.pl
#chown cvs:cvs passwdgen.pl
2) 編輯 /opt/cvs/CVSROOT/config
將 #SystemAuth=no 前的注解拿掉,該行的意思是登入的帳號不在 cvs 的 passwd 裡時,是否要對應到系統帳號。
設定 CVS 執行時所需的 lock 的目錄:LockDir=/opt/cvs_root/lock,並建立及改變此目錄權限
# pwd
/opt/cvs_root
# mkdir lock
# chmod -R 775 lock
# chown -R root:cvs lock
# service xinetd restart
3) 增加 anonymous 登入
新增 anonymous:md5密碼:nobody 至 /opt/cvs/CVSROOT/passwd 中
表示 anonymous 登入的權限是 nobody
若新增此行則 /cvs 需修改權限
#chmod o+rx /cvs
4) 設定 anonymous 權限為唯讀
# vi /opt/cvs/CVSROOT/readers
anonymous <- 新增 anonymous,該檔列表內所有帳號都只有唯讀權限,格式為一行一個帳號。
B. 指令模式
cvs -d "CVSROOT" command
若有用環境變數指定 CVSROOT,則可省略 -d "CVSROOT" 的參數
CVSROOT 通常為 ":pserver:user_name@ip_address:cvs_path" 的格式,如:# export CVSROOT=:pserver:jdev_user@localhost:/opt/cvs
cvs -d "CVSROOT" login:登入
cvs -d "CVSROOT" import profile:將 profile 這個專案新增到 server 上
cvs -d "CVSROOT" checkout profile:將 server 上 profile 專案整個抓下來
cvs -d "CVSROOT" logout:登出
cvs status <project>:列出該 project 內每個檔案的記錄
cvs history <project>:列出該 project 內每個檔案的修改歷史記錄
cvs annotate <pooject>:列出該 project 內每個檔案最後一次修改的記錄
參考:
http://blog.yam.com/gavint/article/2590383
http://forums.gentoo.org/viewtopic-t-55659-start-0.html
http://www.chedong.com/tech/cvs_card.html
http://www.crazysquirrel.com/computing/debian/servers/cvs.jspx
留言列表