FreeBSD 使用手册
上一页 | 第29章 　网络服务器 | 下一页

# 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 登录的某些用户， 而不是完全阻止他们使用 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 服务器中可能遇到的潜在问题。 一般而言， 允许匿名用户上传文件应三思。 您可能发现自己的 FTP 站点成为了交易未经授权的商业软件的论坛， 或发生更糟糕的情况。 如果不需要匿名的 FTP 上传， 可以在文件上配置权限， 使得您能够在其它匿名用户能够下载这些文件之前复查它们。

上一页 | 起始页 | 下一页
Apache HTTP 服务器 | 上一级 | 为 Microsoft® Windows® 客户机提供文件和打印服务 (Samba)

本文档和其它文档可从这里下载：ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题，请先阅读文档，如不能解决再联系<questions@FreeBSD.org>.
关于本文档的问题请发信联系 <doc@FreeBSD.org>.