3 FreeBSD µÄרÓÃÅäÖÃ

¡¡¡¡FreeBSD ÏîÄ¿×Ô¼ºÊ¹ÓÃÒ»¸öÓе㲻ͬµÄÅäÖã¬ÄǾÍÊÇͬʱҲʹÓà FreeBSD CVSROOT ÖÐµÄ freebsd ×ÓĿ¼¡£ ÒòΪ´óÁ¿µÄ committer ±ØÐëÔÚÏàͬµÄÓû§×éÖУ¬ Òò´ËÏîĿдÁËÒ»¸ö¼òµ¥µÄ wrapper À´È·±£ committer ¿ÉÒÔÕýÈ·µÄÌá½»£¬ ²¢ÅäÖô¢´æ¿âµÄÓû§×éÃû³Æ¡£

¡¡¡¡Èç¹ûÄãµÄ´¢´æ¿âÒ²ÐèÒªÕâÑùµÄ¹¦ÄÜ£¬ÄÇôÏÂÃæ¾Í»á½éÉÜÈçºÎ½¨Á¢£¬ ²»¹ýÊ×ÏÈÒªÏÈÀ´¿´Ò»¶Î¸´ÔӵĸÅÊö¡£

3.1 FreeBSD ÅäÖÃÖÐʹÓõÄÎļþ

3.2 ²½Öè

  1. Ö»°ÑÄãµÄÓû§Ãû¼Óµ½ access ÖС£

  2. ±à¼­ cvswrap.c µÄ·¾¶ÒÔ·ûºÏÄãµÄÅäÖ㬠¶¨ÒåÔÚ´óдµÄ ACCESS ÖС£ ͬʱÈç¹ûĬÈÏÖµ²»·ûºÏÄãµÄÇé¿öµÄ»°Ò²Ó¦¸ÃÐ޸ı¾µØÊµ¼ÊµÄ cvs ³ÌÐòËùÔÚλÖᣠԭʼµÄ cvswrap.c Ï£ÍûÌæ´ú·þÎñÆ÷¶ËµÄ CVS ³ÌÐò£¬ ÀýÈ罫Æä¸ÄÃûΪ /usr/bin/ncvs¡£

    ÎÒµÄ cvswrap.c ÊÇÕâÑù£º

    #define ACCESS "/local/cvsroot/CVSROOT/access"
    #define REALCVS "/usr/bin/ncvs"
    
  3. ½ÓÏÂÀ´Êǽ¨Á¢ wrapper À´È·ÈÏÄãÔÚÌύʱÊÇÔÚÕýÈ·µÄÓû§×éÖС£ ÔÚÄãµÄ CVSROOT ÖÐµÄ cvswrap.c ÒªÄܹ»Ê¹Óá£

    ÔÚÄãÍê³É±à¼­²¢¼ÓÈëÕýÈ·µÄ·¾¶ºóÎÒÃÇÒªÀ´±àÒëÔ´´úÂ룺

    % cc -o cvs cvswrap.c
    

    È»ºó½øÐÐÐèÒªÅäÖ㨴˲½ÖèÐèÒª root ȨÏÞ£©£º

    # mv /usr/bin/cvs /usr/bin/ncvs
    # mv cvs /usr/bin/cvs
    # chown root:ncvs /usr/bin/cvs /usr/bin/ncvs
    # chmod o-rx /usr/bin/ncvs
    # chmod u-w,g+s /usr/bin/cvs
    

    Õâ»á½« wrapper °²×°³ÉÔ¤ÉèµÄ cvs ³ÌÐò£¬ ÇëÈ·¶¨ÈκÎҪʹÓô¢´æ¿âµÄÈËÓ¦¸ÃÓÐÕýÈ·µÄ´æÈ¡È¨ÏÞ¡£

  4. ÏÖÔÚÄã¿ÉÒÔɾ³ýËùÓÐÔÚ´¢´æ¿âÓû§×éÖеÄʹÓÃÕߣ¬ËùÓеĴæÈ¡¿ØÖƻᾭÓÉ wrapper Íê³É£¬Í¬Ê± wrapper »áÅäÖôæÈ¡µÄÕýÈ·Óû§×é¡£

3.3 ²âÊÔÅäÖÃ

¡¡¡¡ÄãµÄ wrapper ÏÖÔÚÓ¦¸ÃÒѾ­°²×°ºÃÁË£¬Ä㵱ȻҲ¿ÉÒÔÇ¿ÖÆÌá½» access À´²âÊÔÊÇ·ñÕý³££º

% cvs commit -f -m 'Forced commit to test the new CVSROOT scripts' access

¡¡¡¡Í¬ÑùµØ£¬Èç¹ûÓдíÎ󣬼ì²éÊÇ·ñÉÏÊöËùÓв½Öè¶¼ÓÐÕýÈ·µÄÖ´ÐС£

±¾ÎĵµºÍÆäËüÎĵµ¿É´ÓÕâÀïÏÂÔØ£ºftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Èç¹û¶ÔÓÚFreeBSDÓÐÎÊÌ⣬ÇëÏÈÔĶÁÎĵµ£¬Èç²»Äܽâ¾öÔÙÁªÏµ<questions@FreeBSD.org>.
¹ØÓÚ±¾ÎĵµµÄÎÊÌâÇë·¢ÐÅÁªÏµ <doc@FreeBSD.org>.