32.9. 文件传输协议(FTP) ========================= 文件传输协议(FTP)为用户提供了一种在 FTP 服务器之间传输文件的简单方法。FreeBSD 在基本系统中包括 FTP 服务器软件——ftpd。 FreeBSD 提供了几个配置文件来控制对 FTP 服务器的访问。本节总结了这些文件。有关内置 FTP 服务器的更多详细信息,请参阅 `ftpd(8) `__\ 。 32.9.1. 配置 ------------ 最重要的配置步骤是确定允许哪些帐户访问 FTP 服务器。FreeBSD 系统有许多系统帐户,这些帐户不应该被允许 FTP 访问。禁止任何 FTP 访问的用户列表可以在 **/etc/ftpusers** 中找到。默认情况下,它包括系统帐户。可以添加不应允许其访问 FTP 的其他用户。 在某些情况下,可能需要限制某些用户的访问,而不完全阻止他们使用 FTP。如 `ftpchroot(5) `__ 中所述,这可以通过创建 **/etc/ftpchroot** 来完成。此文件列出了受 FTP 访问限制的用户和组。 要实现对服务器的匿名 FTP 访问,在 FreeBSD 系统上创建一个名为 ``ftp`` 的用户。然后,用户将能够以 ``ftp`` 或 ``anonymous`` 的用户名登录 FTP 服务器。当提示输入密码时,任何输入都会被接受,但按照惯例,应该使用电子邮件地址作为密码。当一个匿名用户登录时,FTP 服务器将调用 `chroot(2) `__ 以限制对 ``ftp`` 用户主目录的访问。 可以创建两个文本文件来指定要向 FTP 客户端显示的欢迎消息。\ **/etc/ftpwelcome** 的内容将在用户到达登录提示之前显示给用户。成功登录后,将显示 **/etc/ftpmotd** 的内容。请注意,此文件的路径是相对于登录环境的,因此将为匿名用户显示 **~ftp/etc/ftpmotd** 的内容。 配置 FTP 服务器后,在 **/etc/rc.conf** 中设置适当的变量以在引导期间启动服务: .. raw:: latex \diilbookstyleinputcell .. code:: shell-session ftpd_enable="YES" 要立即启动该服务,请执行以下操作: .. raw:: latex \diilbookstyleinputcell .. code:: shell-session # service ftpd start 通过键入以下内容来测试与 FTP 服务器的连接: .. raw:: latex \diilbookstyleinputcell .. code:: shell-session % ftp localhost ftpd 守护程序使用 `syslog(3) `__ 来记录消息。默认情况下,系统日志守护程序将在 **/var/log/xferlog** 中写入与 FTP 相关的消息。FTP 日志的位置可以通过更改 **/etc/syslog.conf** 中的以下行来修改: .. raw:: latex \diilbookstyleinputcell .. code:: shell-session ftp.info /var/log/xferlog .. **注意** 请注意运行匿名 FTP 服务器所涉及的潜在问题。特别是在允许匿名用户上传文件方面,请三思而后行。事实证明,FTP 站点可能会成为未经许可的商业软件交易的论坛,甚至更糟糕。如果需要匿名 FTP 上载,请验证权限,以便在管理员审阅这些文件之前,使其他匿名用户无法读取这些文件。