Netkiller Developer 手札
November 15, 2008
Neo Chan
中国广东省深圳市宝安区龙华镇
518109
+86 755 29812080
+86 755 29812080
<openunix@163.com>
文档出处
http://netkiller.8800.org/
http://netkiller.hikz.com/
http://netkiller.mefound.com
版权 © 2008 Netkiller(Neo Chan). All rights reserved.
版权声明
你可以任意转载,转载请与作者联系,转载时请务必标明文章原始出处和作者信息及本声明。
文档最近一次更新于 Wed Nov 26 02:58:28 UTC 2008
第 4 章 cvs - Concurrent Versions System
目录
chroot
cvs login | logout
cvs import
cvs checkout
cvs add
cvs status
cvs commit
cvs remove
cvs log
cvs annotate
cvs diff
rename file
revision
cvs export
Branch
milestone
patch branch
cvs release
keywords
过程 4.1. install cvs
1.
install
$ sudo apt-get install xinetd
$ sudo apt-get install cvs
show the cvs version
$ cvs -v
Concurrent Versions System (CVS) 1.12.13 (client/server)
2.
create cvs group and cvsroot user
$ sudo groupadd cvs
$ sudo adduser cvsroot --ingroup cvs
change user become cvsroot
$ su - cvsroot
3.
initialization 'CVSROOT'
$ cvs -d /home/cvsroot init
if you have successed, you can see CVSROOT directory in the '/home/cvsroot'
$ ls /home/cvsroot/
CVSROOT
4.
authentication
default SystemAuth=yes, you can use system user to login cvs.
but usually, we don't used system user because it isn't security.
SystemAuth = no
edit '/home/cvsroot/CVSROOT/config' make sure SystemAuth = no
$ vim /home/cvsroot/CVSROOT/config
SystemAuth = no
create passwd file
the format is user:password:cvsroot
you need to using htpasswd command, if you don't have, please install it as the following
$ sudo apt-get install apache2-utils
or
$ perl -e 'print("userPassword: ".crypt("secret","salt")."\n");'
or
$ cat passwd
#!/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";
$ ./passwd "mypasswd"
atfodI2Y/dcdc
let's using htpasswd to create a passwd
$ htpasswd -n neo
New password:
Re-type new password:
neo:yA50LI1BkXysY
copy 'neo:yA50LI1BkXysY' and add ':cvsroot' to the end
$ vim /home/cvsroot/CVSROOT/passwd
neo:yA50LI1BkXysY:cvsroot
nchen:GXaAkSKaQ/Hpk:cvsroot
5.
Go into directory '/etc/xinetd.d/', and then create a cvspserver file as the following.
$ sudo vim /etc/xinetd.d/cvspserver
service cvspserver
{
disable = no
flags = REUSE
socket_type = stream
wait = no
user = cvsroot
server = /usr/bin/cvs
server_args = -f --allow-root=/home/cvsroot pserver
log_on_failure += USERID
}
6.
check cvspserver in the '/etc/services'
$ grep cvspserver /etc/services
cvspserver 2401/tcp # CVS client/server operations
cvspserver 2401/udp
7.
restart xinetd
$ /etc/init.d/xinetd
Usage: /etc/init.d/xinetd {start|stop|reload|force-reload|restart}
8.
port
$ nmap localhost -p cvspserver
Starting Nmap 4.53 ( http://insecure.org ) at 2008-11-14 16:21 HKT
Interesting ports on localhost (127.0.0.1):
PORT STATE SERVICE
2401/tcp open cvspserver
Nmap done: 1 IP address (1 host up) scanned in 0.080 seconds
9.
firewall
$ sudo ufw allow cvspserver
environment variable
CVSROOT=:pserver:username@ip:/home/cvsroot
vim .bashrc
export CVS_RSH=ssh
export CVSROOT=:pserver:neo@localhost:/home/cvsroot
test
$ cvs login
Logging in to :pserver:neo@localhost:2401/home/cvsroot
CVS password:
neo@netkiller:/tmp/test$ cvs co test
cvs checkout: Updating test
U test/.project
U test/NewFile.xml
U test/newfile.php
neo@netkiller:/tmp/test$
environment variable
neo@netkiller:~/workspace/cvs$ export CVSROOT=:pserver:neo@localhost:/home/cvsroot
ssh
export CVS_RSH=ssh
export CVSROOT=:ext:$USER@localhost:/home/cvsroot
第 4 章 cvs - Concurrent Versions System
-
- 帖子: 23
- 注册时间: 2008-10-09 21:41
- 来自: 深圳
- 联系:
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙