1:安全
#groupadd cvs
#mkdir /home2/cvsroot#注意:/home2/cvsroot為root所有
#useradd -g cvs -G cvs -d /home2/cvsroot/cvsroot cvsroot
/***未經(jīng)實(shí)驗(yàn)**/
#mv /usr/bin/cvs /usr/bin/cvs.real
#cat > /usr/bin/cvs
#!/bin/sh
umask 2# Or whatever your site standard is.
exec /usr/bin/cvs.real ${1+"$@"}
^D
/*************/
2:多倉庫
注意,我們用cvsroot僅僅是用來管理,所以,不要在它$HOME下面創(chuàng)建任何倉庫
另外,cvsroot用戶的初始環(huán)境不應(yīng)該包含非空的$CVSROOT.
使用cvsroot來進(jìn)行的任何管理工作都指明CVSROOT是一個好的習(xí)慣.
OK,開始給單個項(xiàng)目建倉庫
假設(shè)有兩個項(xiàng)目,project1,project2,希望單獨(dú)存放,便于管理
#mkdir /home2/cvsroot/pro1
#mkdir /home2/cvsroot/pro2
#chown cvsroot.cvs /home2/cvsroot/pro1
#chown cvsroot.cvs /home2/cvsroot/pro2
#chmod 2775 /home2/cvsroot/pro1
#chmod 2775 /home2/cvsroot/pro2
(更高的安全要求則$chmod 2770 /home2/cvsroot/cvsroot/pro1)
OK,開始建立倉庫
#su - cvsroot
$cvs -d /home2/cvsroot/pro1 init
$cvs -d /home2/cvsroot/pro2 init
$chmod 2775 /home2/cvsroot/pro1
$chmod 2775 /home2/cvsroot/pro2
修改啟動文件
service cvspserver
{
disable = no
flags= REUSE
socket_type= stream
wait= no
user= root
bind= 192.168.0.1
only_from= 192.168.0.0/24
server= /usr/bin/cvs
server_args= -f --allow-root=/home2/cvsroot/pro1 --allow-root=/home2/cvsroot/pro2 pserver
log_on_failure += USERID
}
/********技巧*************/
由于x.netd的server_args長度限制,當(dāng)你想運(yùn)行很多的單個倉庫的時(shí)候,可以這么做,
#vi /etc/xinetd.d/cvspserver
service cvspserver
{
disable= no
flags= REUSE
socket_type= stream
wait= no
user= root
bind= 192.168.0.1
only_from= 192.168.0.1.0/24
server= /home2/cvsroot/cvs.run
log_on_failure += USERID
}
:wq
然后寫腳本/home2/cvsroot/cvs.run
#vi /home2/cvsroot/cvs.run
#!/bin/bash
/usr/bin/cvs -f
--allow-root=/home2/cvsroot/pro1
--allow-root=/home2/cvsroot/pro2
--allow-root=/home2/cvsroot/pro3
--allow-root=/home2/cvsroot/pro4
--allow-root=/home2/cvsroot/pro5
--allow-root=/home2/cvsroot/pro6
pserver
:wq
#chmod +x /home2/cvsroot/cvs.run
#service xinetd restart
OK!
/*************************/