29.8 Îļþ´«ÊäЭÒé (FTP)

Contributed by Murray Stokely.

29.8.1 ×ÝÀÀ

¡¡¡¡Îļþ´«ÊäЭÒé (FTP) ΪÓû§ÌṩÁËÒ»¸ö¼òµ¥µÄ£¬ Óë FTP ·þÎñÆ÷½»»»ÎļþµÄ·½·¨¡£ FreeBSD ϵͳÖаüº¬ÁË FTP ·þÎñÈí¼þ£¬ ftpd¡£ ÕâʹµÃÔÚ FreeBSD ÉϽ¨Á¢ºÍ¹ÜÀí FTP ·þÎñÆ÷±äµÃ·Ç³£¼òµ¥¡£

29.8.2 ÅäÖÃ

¡¡¡¡×îÖØÒªµÄÅäÖò½ÖèÊǾö¶¨ÔÊÐíÄÄЩÕʺŷÃÎÊ FTP ·þÎñÆ÷¡£ Ò»°ãµÄ FreeBSD ϵͳ°üº¬ÁËһϵÁÐϵͳÕʺŷֱðÓÃÓÚÖ´Ðв»Í¬µÄ·þÎñ³ÌÐò£¬ µ«Î´ÖªµÄÓû§²»Ó¦±»ÔÊÐíµÇ¼²¢Ê¹ÓÃÕâЩÕʺš£ /etc/ftpusers ÎļþÖУ¬ ÁгöÁ˲»ÔÊÐíͨ¹ý FTP ·ÃÎʵÄÓû§¡£ ĬÈÏÇé¿öÏ£¬ Õâ°üº¬ÁËǰÊöµÄϵͳÕʺţ¬ µ«Ò²¿ÉÒÔÔÚÕâÀï¼ÓÈëÆäËü²»Ó¦Í¨¹ý FTP ·ÃÎʵÄÓû§¡£

¡¡¡¡Äú¿ÉÄÜ»áÏ£ÍûÏÞÖÆÍ¨¹ý FTP µÇ¼µÄijЩÓû§£¬ ¶ø²»ÊÇÍêÈ«×èÖ¹ËûÃÇʹÓà FTP¡£ Õâ¿ÉÒÔͨ¹ý /etc/ftpchroot ÎļþÀ´Íê³É¡£ ÕâÒ»ÎļþÁгöÁËÏ£Íû¶Ô FTP ·ÃÎʽøÐÐÏÞÖÆµÄÓû§ºÍ×éµÄ±í¡£ ¶øÔÚ ftpchroot(5) Áª»úÊÖ²áÖУ¬ ÒѾ­¶Ô´Ë½øÐÐÁËÏ꾡µÄ½éÉÜ£¬ ¹Ê¶ø²»ÔÙ׸Êö¡£

¡¡¡¡Èç¹ûÄúÏëÒªÔÚ·þÎñÆ÷ÉÏÆôÓÃÄäÃûµÄ FTP ·ÃÎÊ£¬ Ôò±ØÐ뽨Á¢Ò»¸öÃûΪ ftp µÄ FreeBSD Óû§¡£ ÕâÑù£¬ Óû§¾Í¿ÉÒÔʹÓà ftp »ò anonymous ºÍÈÎÒâµÄ¿ÚÁî (ϰ¹ßÉÏ£¬ Ó¦¸ÃÊÇÒÔÄǸöÓû§µÄÓʼþµØÖ·×÷Ϊ¿ÚÁî) À´µÇ¼ºÍ·ÃÎÊÄúµÄ FTP ·þÎñÆ÷¡£ FTP ·þÎñÆ÷½«ÔÚÄäÃûÓû§µÇ¼ʱµ÷Óà chroot(2)£¬ ÒԱ㽫Æä·ÃÎÊÏÞÖÆÔÚ ftp Óû§µÄÖ÷Ŀ¼ÖС£

¡¡¡¡ÓÐÁ½¸öÎı¾Îļþ¿ÉÒÔÓÃÀ´Ö¸¶¨ÏÔʾÔÚ FTP ¿Í»§³ÌÐòÖе϶ӭÎÄ×Ö¡£ /etc/ftpwelcome ÎļþÖеÄÄÚÈݽ«ÔÚÓû§Á¬½ÓÉÏÖ®ºó£¬ ÔڵǼÌáʾ֮ǰÏÔʾ¡£ Ôڳɹ¦µÄµÇ¼֮ºó£¬ ½«ÏÔʾ /etc/ftpmotd ÎļþÖеÄÄÚÈÝ¡£ Çë×¢ÒâºóÕßÊÇÏà¶ÔÓڵǼ»·¾³µÄ£¬ Òò´Ë¶ÔÓÚÄäÃûÓû§¶øÑÔ£¬ ½«ÏÔʾ ~ftp/etc/ftpmotd¡£

¡¡¡¡Ò»µ©ÕýÈ·µØÅäÖÃÁË FTP ·þÎñÆ÷£¬ ¾Í±ØÐëÔÚ /etc/inetd.conf ÖÐÆôÓÃËü¡£ ÕâÀïÐèÒª×öµÄÈ«²¿¹¤×÷¾ÍÊǽ«×¢ÊÍ·û ¡°#¡± ´ÓÒÑÓÐµÄ ftpd ÐÐ֮ǰȥµô£º

ftp    stream  tcp     nowait  root    /usr/libexec/ftpd       ftpd -l

¡¡¡¡Èç Àý 29-1 Ëù½éÉܵÄÄÇÑù£¬ ÐÞ¸ÄÕâ¸öÎļþÖ®ºó£¬ ±ØÐëÈà inetd ÖØÐ¼ÓÔØËü£¬ ²ÅÄÜʹеÄÉèÖÃÉúЧ¡£Çë²ÎÔÄ µÚ 29.2.2 ½Ú ÒÔ»ñÈ¡¸ü¶àÓйØÈçºÎÔÚÄãϵͳÉÏÆôÓà inetd µÄÏêϸÐÅÏ¢¡£

¡¡¡¡ftpd Ò²¿ÉÒÔ×÷Ϊһ¸ö¶ÀÁ¢µÄ·þÎñÆô¶¯¡£ ÕâÑùµÄ»°¾ÍÐèÒªÔÚ /etc/rc.conf ÖÐÉèÖÃÈçϵıäÁ¿£º

ftpd_enable="YES"

¡¡¡¡ÔÚÉèÖÃÁËÉÏÊö±äÁ¿Ö®ºó£¬¶ÀÁ¢µÄ·þÎñ½«ÔÚÏ´ÎÏµÍ³ÖØÆôµÄʱºòÆô¶¯£¬ »òÕßͨ¹ýÒÔ root Éí·ÝÊÖ¶¯Ö´ÐÐÈçϵÄÃüÁîÆô¶¯£º

# /etc/rc.d/ftpd start

¡¡¡¡ÏÖÔÚ¿ÉÒÔͨ¹ýÊäÈëÏÂÃæµÄÃüÁîÀ´µÇ¼ÄúµÄ FTP ·þÎñÆ÷ÁË£º

% ftp localhost

29.8.3 ά»¤

¡¡¡¡ftpd ·þÎñ³ÌÐòʹÓà syslog(3) À´¼Ç¼ÏûÏ¢¡£ ĬÈÏÇé¿öÏ£¬ ϵͳÈÕÖ¾½«°ÑºÍ FTP Ïà¹ØµÄÏûÏ¢¼Ç¼µ½ /var/log/xferlog ÎļþÖС£ FTP ÈÕÖ¾µÄλÖ㬠¿ÉÒÔͨ¹ýÐÞ¸Ä /etc/syslog.conf ÖÐÈçÏÂËùʾµÄÐÐÀ´Ð޸ģº

ftp.info      /var/log/xferlog

¡¡¡¡Ò»¶¨ÒªÐ¡ÐĶԴýÔÚÄäÃû FTP ·þÎñÆ÷ÖпÉÄÜÓöµ½µÄDZÔÚÎÊÌâ¡£ Ò»°ã¶øÑÔ£¬ ÔÊÐíÄäÃûÓû§ÉÏ´«ÎļþÓ¦Èý˼¡£ Äú¿ÉÄÜ·¢ÏÖ×Ô¼ºµÄ FTP Õ¾µã³ÉΪÁ˽»Ò×δ¾­ÊÚȨµÄÉÌÒµÈí¼þµÄÂÛ̳£¬ »ò·¢Éú¸üÔã¸âµÄÇé¿ö¡£ Èç¹û²»ÐèÒªÄäÃûµÄ FTP ÉÏ´«£¬ ¿ÉÒÔÔÚÎļþÉÏÅäÖÃȨÏÞ£¬ ʹµÃÄúÄܹ»ÔÚÆäËüÄäÃûÓû§Äܹ»ÏÂÔØÕâЩÎļþ֮ǰ¸´²éËüÃÇ¡£

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

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