3 FreeBSD ªº¯S®í³]©w

FreeBSD ±M®×¦Û¤v¨Ï¥Î¤@­Ó¦³ÂI¤£¦Pªº³]©w¡A¨º´N¬O¦P®É¤]¨Ï¥Î FreeBSD CVSROOT ¤¤ªº freebsd ¤l¥Ø¿ý¡C¦] ¬°¤j¶qªº´£¥æªÌ¥²¶·¦b¬Û¦Pªº¸s²Õ¤¤¡A¦]¦¹±M®×¼g¤F¤@­Ó²³æªº wrapper ¨Ó½T»{´£ ¥æªÌ¥i¥H¥¿½Tªº´£¥æ¡A¨Ã³]©wÀx¦s®wªº¸s²Õ¦WºÙ¡C

¦pªG§AªºÀx¦s®w¤]»Ý­n³o¼Ëªº¥\¯à¡A¨º»ò¤U­±´N·|¤¶²Ð¦p¦ó«Ø¥ß¡A¤£¹L­º¥ý­n ¥ý¨Ó¬Ý¤@¬q½ÆÂøªº·§­z¡C

3.1 FreeBSD ³]©w¤¤¨Ï¥ÎªºÀÉ®×

3.2 ¨BÆJ

  1. ¥u¦³¥[¤J§Aªº¨Ï¥ÎªÌ¦WºÙ¨ì access ¤¤¡C

  2. ½s¿è cvswrap.c ªº¸ô®|¥H²Å¦X§Aªº³]©w¡A©w¸q ¦b¤j¼gªº ACCESS ¤¤¡C¦P®É¦pªG¹w³]­È¤£²Å¦X§Aªº±¡ªp ªº¸Ü¤]À³¸Ó­×§ï¥»¦a¹ê»Úªº cvs µ{¦¡©Ò¦b¦ì¸m¡C­ì©l ªº cvswrap.c §Æ±æ´À¥N¦øªAºÝªº CVS µ{¦¡¡A¨Ò¦p¥i ¯à·|¬O /usr/bin/ncvs¡C

    §Úªº cvswrap.c ¬O³o¼Ë¡G

    #define ACCESS "/local/cvsroot/CVSROOT/access"
    #define REALCVS "/usr/bin/ncvs"
    
  3. ±µ¤U¨Ó¬O«Ø¥ß wrapper ¨Ó½T»{§A¦b´£¥æ®É¬O¦b¥¿½Tªº¸s²Õ¤¤¡C ¦b§Aªº CVSROOT ¤¤ªº cvswrap.c ­n¯à°÷¨Ï¥Î¡C

    ¦b§A§¹¦¨½s¿è¨Ã¥[¤J¥¿½Tªº¸ô®|«á§Ú­Ì­n¨Ó½sĶ­ì©l½X¡G

    % cc -o cvs cvswrap.c
    

    µM«á¶i¦æ»Ý­n³]©w¡]¦¹¨BÆJ»Ý­n root Åv­­¡^¡G

    # 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
    

    ³o·|±N wrapper ¦w¸Ë¦¨¹w³]ªº cvs µ{¦¡¡A½Ð½T©w ¥ô¦ó­n¨Ï¥ÎÀx¦s®wªº¤HÀ³¸Ó¦³¥¿½Tªº¦s¨úÅv­­¡C

  4. ²{¦b§A¥i¥H§R°£©Ò¦³¦bÀx¦s®w¸s²Õ¤¤ªº¨Ï¥ÎªÌ¡A©Ò¦³ªº¦s¨ú±±¨î·|¸g¥Ñ wrapper §¹¦¨¡A¦P®É wrapper ·|³]©w¦s¨úªº¥¿½T¸s²Õ¡C

3.3 ´ú¸Õ³]©w

§Aªº wrapper ²{¦bÀ³¸Ó¤w¸g¦w¸Ë¦n¤F¡A§A·íµM¤]¥i¥H±j¨î´£¥æ access ¨Ó´ú¸Õ¬O§_¥¿±`¡G

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

¦P¼Ë¦a¡A¦pªG¦³¿ù»~¡AÀˬd¬O§_¤W­z©Ò¦³¨BÆJ³£¦³¥¿½Tªº°õ¦æ¡C

¥»¤å¤Î¨ä¥L¤å¥ó¡A¥i¥Ñ¦¹¤U¸ü¡Gftp://ftp.FreeBSD.org/pub/FreeBSD/doc/¡C

­Y¦³ FreeBSD ¤è­±ºÃ°Ý¡A½Ð¥ý¾\Ū FreeBSD ¬ÛÃö¤å¥ó¡A¦p¤£¯à¸Ñ¨Mªº¸Ü¡A¦A¬¢¸ß <questions@FreeBSD.org>¡C
Ãö©ó¥»¤å¥óªº°ÝÃD¡A½Ð¬¢¸ß <doc@FreeBSD.org>¡C