1:安全 #groupadd cvs #mkdir /home2/cvsroot#注意:/home2/cvsroot为root所有 #useradd -g cvs -G cvs -d /home2/cvsroot/cvsroot cvsroot /***未经实验**/ #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下面创建任何仓库 另外,cvsroot用户的初始环境不应该包含非空的$CVSROOT. 使用cvsroot来进行的任何管理工作都指明CVSROOT是一个好的习惯. OK,开始给单个项目建仓库 假设有两个项目,project1,project2,希望单独存放,便于管理 #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长度限制,当你想运行很多的单个仓库的时候,可以这么做, #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! /*************************/