系统管理指南:网络服务

Procedure如何控制对 FTP 服务器执行的上载操作

ftpaccess 文件中添加指令以指定上载权限和上载失败的错误消息。

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

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

  2. 将以下项添加到 ftpaccess 文件中。

    要使用户可以上载文件,请添加以下项:


    upload [absolute|relative] [class=<classname>]... [-] root-dir \
    
    dirglob yes|no owner group mode [dirs|nodirs] [<d_mode>]
    
    
    
    path-filter typelist mesg allowed_charset {disallowed regexp...}
    
    upload

    该关键字应用于起始目录(chroot() 的参数)为 root-dir 的用户。可以将 root-dir 指定为“*”以便与任何起始目录匹配。

    absolute|relative

    该参数指定将 root-dir 目录路径解释为绝对路径还是相对于当前 chroot 目录的路径。

    class

    该关键字用于指定任何数量的 class=<classname> 限制。如果指定该限制,则仅在当前用户为指定的某个类的成员时,上载子句才有效。

    root-dir

    匿名用户的用户根目录和起始目录。

    dirglob

    与目录名称匹配的模式。可以在任何位置或单独使用星号来表示任何目录。

    yes|no

    允许或禁止上载到 FTP 服务器的变量。

    owner

    上载到 dirnames 中的文件的属主。

    group

    与上载到 dirnames 中的文件关联的组。

    mode

    用于对已上载的文件指定访问权限的参数。缺省模式 0440 禁止匿名帐户读取已上载的文件。

    dirs|nodirs

    该关键字允许或禁止用户在 dirnames 中列出的目录中创建子目录。

    d_mode

    确定新创建目录的权限的可选模式。

    path-filter

    控制已上载文件的名称的关键字。

    typelist

    用逗号分隔的任何关键字(anonymousguestreal)的列表。

    mesg

    regexp 条件匹配失败时将显示的消息文件。

    allowed_charset {disallowed regexp...}

    文件名称中允许或禁止使用的字母或数字。


示例 28–13 控制到 FTP 服务器的上载


upload /export/home/ftp /incoming yes ftpadm ftpadmin 0440 nodirs

path-filter anonymous /etc/ftpd/filename.msg ^[-A-Za-z0-9._]*$ ^[.-]

上面的示例说明了以下内容:

应对允许匿名上载到的目录的拥有权和权限进行严格控制。FTP 管理员应该是上载到 FTP 服务器的所有文件的属主。允许匿名用户上载文件时,需要创建 FTP 管理员。该目录应为权限设置为 3773 的用户 ftpadm 和组 ftpadm 拥有。

上载到 FTP 服务器的文件的访问模式应为 04400440 模式禁止匿名帐户读取已上载的文件。此限制可以防止服务器成为第三方文件分发的临时区域。

要使已上载的文件可以进行分发,FTP 管理员可以将这些文件移到公共目录中。