要访问 FTP 服务器,必须先登录。FTP 服务器支持三种类型的用户登录帐户,它们分别是实际用户、临时用户和匿名用户。
实际用户具有允许他们在运行 FTP 服务器的系统上建立终端会话的帐户。整个磁盘结构对实际用户是否可见取决于目录和文件访问权限。
临时用户也需要帐户来登录到 FTP 服务器。可以使用用户名和口令设置每个临时用户帐户。为了防止临时用户建立终端会话,将不会为该类用户指定功能登录 shell。登录时,FTP 服务器执行 chroot(2) 操作以限制临时用户查看服务器的磁盘结构。
要允许实际用户和临时用户访问 FTP 服务器,必须在 /etc/shells 文件中列出他们的登录 shell。
匿名用户通过使用 ftp 或 anonymous 作为用户名来登录到 FTP 服务器。根据约定,在系统提示输入口令时,匿名用户提供电子邮件地址。
登录时,FTP 服务器执行 chroot(2) 操作以限制匿名用户查看服务器的磁盘结构。与可以为每个临时用户创建独立的区域不同,所有匿名用户共享一个文件区域。
实际用户和临时用户使用包含口令(仅一个人知道)的各个帐户登录。匿名用户登录到可能对所有用户可用的已知帐户。大多数大规模文件分发是通过使用匿名帐户创建的。
验证用户是否具有使用用户名和口令设置的可用于建立终端会话的帐户。
有关更多信息,请参见《系统管理指南:基本管理》中的第 4 章 “管理用户帐户和组(概述)”。
确认该实际用户是否是 ftpaccess 文件中某类的成员。
有关 ftpaccess 文件中定义的用户类的信息,请参见如何定义 FTP 服务器类。
验证 /etc/shells 文件中是否列出了用户的登录 shell。
ftpconfig 脚本用于将所有需要的系统文件复制到起始目录中。如果临时用户和临时用户的起始目录已存在,则 ftpconfig 脚本将会使用当前的系统文件更新该区域。
有关更多信息,请参见 ftpconfig(1M)。
与为匿名用户设置的用户名(anonymous 或 ftp)不同,FTP 临时用户的用户名不是固定的。可以选择将任何名称作为实际用户名。
要使临时用户可以访问 FTP 服务器,请执行以下操作:
使用 useradd 脚本创建包含登录 shell /bin/true 和起始目录 /root_dir/./home_dir 的临时用户帐户。
有关更多信息,请参见 useradd(1M) 和《系统管理指南:基本管理》中的第 4 章 “管理用户帐户和组(概述)”。
在此过程中,/home/guests/./guest1 用作名为 guest1 的用户的起始目录名称。
# /usr/sbin/useradd -m -c "Guest FTP" -d \ /home/guests/./guest1 -s /bin/true guest1 |
为临时帐户指定口令。
将 guestuser 项添加到 ftpaccess 文件中。
guestuser guest1 |
也可以使用 ftpaccess 文件中的 guestgroup 功能指定临时用户。ftpaccess 中的 guest-root 功能无需指定临时用户的起始目录路径中的 /./。
确认该临时用户是否是 ftpaccess 文件中某个 class 的成员。有关详细信息,请参见如何定义 FTP 服务器类。
使用 ftpconfig 脚本在 chroot 区域中创建需要的文件。
/usr/sbin/ftpconfig -d /home/guests |
确认 /bin/true 是否列在 /etc/shells 文件中。请参见如何创建 /etc/shells 文件。
在此示例中,将在 /home/guests 目录中设置 FTP 区域。
# /usr/sbin/ftpconfig -d /home/guests Updating directory /home/guests |
ftpconfig 脚本创建 anonymous 用户帐户并使用需要的文件填充起始目录。
有关更多信息,请参见 ftpconfig(1M)。
要使匿名用户可以访问 FTP 服务器,请按照以下说明操作:
使用 ftpconfig 脚本创建匿名用户帐户。
/usr/sbin/ftpconfig anonymous-ftp-directory |
确认是否在 ftpaccess 文件的某个 class 中指定了该匿名用户。
有关详细信息,请参见如何定义 FTP 服务器类。
在此示例中,将在 /home/ftp 目录中设置 FTP 区域。
# /usr/sbin/ftpconfig /home/ftp Creating user ftp Updating directory /home/ftp |
成为超级用户或承担等效角色。
角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2 章 “使用 Solaris Management Console(任务)”。
创建 /etc/shells 文件。
编辑 /etc/shells。添加每个 shell 的全路径,一个路径占一行。
以下是 /etc/shells 文件的一个示例,其中列出了 FTP 临时用户的 /bin/true:
/sbin/sh /bin/csh /bin/jsh /bin/ksh /bin/remsh /bin/rksh /bin/rsh /bin/sh /usr/bin/csh /usr/bin/ksh /usr/bin/bash /usr/bin/tcsh /usr/bin/zsh /bin/true |