码迷,mamicode.com
首页 > 其他好文 > 详细

CVS服务器配置要点

时间:2014-06-29 20:08:30      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   使用   strong   文件   

  • 为了方便管理,可为 cvs 专门建立现存于操作系统中的一个组和其中的若干用户。后面还需要建立只属于 cvs 服务的 virtual 用户,并将他们映射到已建立的系统用户上。通过设置文件与目录的不同权限,则可以对 cvs 服务的 virtual 用户进行不同访问权限的控制。

  • 由于 cvs 服务并不是采用 standalone模式始终在后台运行并监听端口,而是由 inetdxinetd守护进程来代劳。所以需要配置 /etc/services文件,将 cvs 服务的端口号(通常为2401)与服务名称关联起来,并配置 inetd.conf或在 /etc/xinetd.d/目录下生成相应的服务描述文件,指明 inetdxinetd以什么方式和参数来启动 cvs 程序,以及使用
    --allow-root=/path/to/your/repository/
    来指明 cvs 服务需保存的所有 repository。配置完成后需要重新启动 inetdxinetd,使其读入 cvs 新的配置。
    下面是各配置文件中相关的内容:

    # /etc/services
    cvspserver 2401/tcp
    cvspserver 2401/udp
    
    # /etc/inetd.conf
    cvspserver stream tcp nowait root /usr/local/bin/cvs cvs
        --allow-root=/usr/local/newrepository pserver
    
    # /etc/xinetd.d/cvspserver
    service cvspserver
     {
          socket_type = stream
          wait = no
          user = root
          env = HOME=
          server = /usr/bin/cvs
          server_args = --allow-root=/cvsroot/program --allow-root=/cvsroot/linuxconf
                      --allow-root=/cvsroot/official --allow-root=/cvsroot/pub pserver
     }
  • 根据 --allow-root=/path/to/your/repositary/中指定的路径,生成相应的目录作为 repository,然后使用 cvs init对每一个 repository初始化:

    cvs -d /path/to/your/repository init
  • repository初始化后,会在其目录下生成 CVSROOT子目录。然后,在 CVSROOT目录中创建 passwd文件,设置使用 cvs virtual用户名、密码,及其所映射的操作系统用户:

        foo:blah-blah:cvsroot
        goo:blah-blah:cvsroot

    这里即将 cvs virtual用户 foo goo 映射为操作系统用户 cvsroot 。而 blah-blah 部分对应的是由下面的 Perl 脚本加密后生成的密码:

    #!/usr/bin/perl
    
        # Run me like this: crypt.pl "username"
        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";
  • CVSROOT目录中修改文件 cvswrapperscvsignorecvswrappers文件的目的是告诉 cvs 哪些文件是二进制文件,从而需要禁用 keyword expansionline-ending conversion 。而 cvsignore文件列出了哪些文件是需要忽略不参予 cvs 管理的,诸如 *.~ *.bak 等文件。下面分别给出这两个文件的内容:

    # cvswrappers
    *.gif -k ‘b‘
    *.jpg -k ‘b‘
    *.JPG -k ‘b‘
    *.dvi -k ‘b‘
    *.pdf -k ‘b‘
    *.doc -k ‘b‘
    *.eps -k ‘b‘
    *.caj -k ‘b‘
    *.ps -k ‘b‘
    *.exe -k ‘b‘
    *.com -k ‘b‘
    *.png -k ‘b‘
    *.bmp -k ‘b‘
    *.PNG -k ‘b‘
    *.BMP -k ‘b‘
    *.dia -k ‘b‘
    *.fig -k ‘b‘
    *.FIG -k ‘b‘
    *.mat -k ‘b‘
    *.MAT -k ‘b‘
    *.a -k ‘b‘
    
    #cvsignore
    _region_.tex
    *.log
    *.efmt
    _region_.prv
    *.out
    *.snm
    *.aux
    *.nav
    *.toc
    *.bbl
    *.blg
    *.mpo
    *.mpx
    *.tmp
    tmpgraph.tex
    relax.*
    #*#
    *.bak
    *.BAK
    *~
    *.asv
    *.d
    semantic.cache

    注意: 修改完 passwdcvswrapperscvsignore文件后,需将其权限设为 444

  • 实质上,上述方法设置user passwd已经不再适用了。正确的做法是,应该将被映设的系统用户信息条目从/etc/passwd中添加到/var/lib/cvsd/etc/passwd中。否则,就会出现”cvsd: no such system user”的错误。同时,应该该用户添加到cvsd组中,否则用户将没有权限访问repository。(事实证明,这么做也不行,只能将cvs虚拟用户映到cvsd上)

  • 最后,对生成的 repository及其所有子目录设置相应的用户与组权限。权限的设置可以通过设置文件与目录的操作系统级权限,也可以在 CVSROOT下建立 readerswriters文件,来控制 cvs virtual用户的访问权限。这两个文件中均是 cvs 虚拟用户名的列表,每行写一个用户名,且在文件末尾留一空白行。写在 readers文件中的用户只有 read-only权限,写在 writers中的用户同时拥有读写权限。若在 CVSROOT下存在 writers文件,则凡是未列入该文件的用户都只有 read-only权限。

CVS服务器配置要点,布布扣,bubuko.com

CVS服务器配置要点

标签:style   blog   color   使用   strong   文件   

原文地址:http://www.cnblogs.com/quantumman/p/3814810.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!