系统管理指南:网络服务

设置 FTP 服务器登录

要访问 FTP 服务器,必须先登录。FTP 服务器支持三种类型的用户登录帐户,它们分别是实际用户、临时用户和匿名用户。

Procedure如何设置实际 FTP 用户

要使实际用户可以访问 FTP 服务器,请按照以下说明操作:

  1. 验证用户是否具有使用用户名和口令设置的可用于建立终端会话的帐户。

    有关更多信息,请参见《系统管理指南:基本管理》中的第 4  章 “管理用户帐户和组(概述)”

  2. 确认该实际用户是否是 ftpaccess 文件中某类的成员。

    有关 ftpaccess 文件中定义的用户类的信息,请参见如何定义 FTP 服务器类

  3. 验证 /etc/shells 文件中是否列出了用户的登录 shell。

Procedure如何设置临时 FTP 用户

ftpconfig 脚本用于将所有需要的系统文件复制到起始目录中。如果临时用户和临时用户的起始目录已存在,则 ftpconfig 脚本将会使用当前的系统文件更新该区域。

有关更多信息,请参见 ftpconfig(1M)


注 –

与为匿名用户设置的用户名(anonymousftp)不同,FTP 临时用户的用户名不是固定的。可以选择将任何名称作为实际用户名。


要使临时用户可以访问 FTP 服务器,请执行以下操作:

  1. 使用 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
    
  2. 为临时帐户指定口令。

  3. guestuser 项添加到 ftpaccess 文件中。


    guestuser guest1

    注 –

    也可以使用 ftpaccess 文件中的 guestgroup 功能指定临时用户。ftpaccess 中的 guest-root 功能无需指定临时用户的起始目录路径中的 /./


  4. 确认该临时用户是否是 ftpaccess 文件中某个 class 的成员。有关详细信息,请参见如何定义 FTP 服务器类

  5. 使用 ftpconfig 脚本在 chroot 区域中创建需要的文件。


    /usr/sbin/ftpconfig -d /home/guests
    
  6. 确认 /bin/true 是否列在 /etc/shells 文件中。请参见如何创建 /etc/shells 文件


示例 28–6 设置临时 FTP 用户

在此示例中,将在 /home/guests 目录中设置 FTP 区域。


# /usr/sbin/ftpconfig -d /home/guests

Updating directory /home/guests

Procedure如何设置匿名 FTP 用户

ftpconfig 脚本创建 anonymous 用户帐户并使用需要的文件填充起始目录。

有关更多信息,请参见 ftpconfig(1M)

要使匿名用户可以访问 FTP 服务器,请按照以下说明操作:

  1. 使用 ftpconfig 脚本创建匿名用户帐户。


    /usr/sbin/ftpconfig anonymous-ftp-directory
    
  2. 确认是否在 ftpaccess 文件的某个 class 中指定了该匿名用户。

    有关详细信息,请参见如何定义 FTP 服务器类


示例 28–7 设置匿名 FTP 用户

在此示例中,将在 /home/ftp 目录中设置 FTP 区域。


# /usr/sbin/ftpconfig /home/ftp

Creating user ftp

Updating directory /home/ftp

Procedure如何创建 /etc/shells 文件

  1. 成为超级用户或承担等效角色。

    角色包含授权和具有一定权限的命令。有关角色的更多信息,请参见《系统管理指南:安全性服务》中的“配置 RBAC(任务列表)”。有关如何使用主管理员配置文件配置角色,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 创建 /etc/shells 文件。

  3. 编辑 /etc/shells。添加每个 shell 的全路径,一个路径占一行。


示例 28–8 创建 /etc/shells 文件

以下是 /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