"Fossies" - the Fresh Open Source Software Archive

Member "mod_ftp-0.9.6/docs/manual/mod/mod_ftp.xml" (22 Sep 2009, 31927 Bytes) of package /linux/www/apache_httpd_modules/old/mod_ftp-0.9.6-beta.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) XML source code syntax highlighting (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file.

    1 <?xml version="1.0"?>
    2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
    3 <?xml-stylesheet type="text/xsl" href="../style/manual.en.xsl"?>
    4 <!--
    5  Licensed to the Apache Software Foundation (ASF) under one or more
    6  contributor license agreements.  See the NOTICE file distributed with
    7  this work for additional information regarding copyright ownership.
    8  The ASF licenses this file to You under the Apache License, Version 2.0
    9  (the "License"); you may not use this file except in compliance with
   10  the License.  You may obtain a copy of the License at
   11 
   12      http://www.apache.org/licenses/LICENSE-2.0
   13 
   14  Unless required by applicable law or agreed to in writing, software
   15  distributed under the License is distributed on an "AS IS" BASIS,
   16  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   17  See the License for the specific language governing permissions and
   18  limitations under the License.
   19 -->
   20 <!--
   21  Original Copyright (c) 2005 Covalent Technologies
   22 
   23  FTP Protocol module for Apache 2.0
   24 -->
   25 <modulesynopsis metafile="mod_ftp.xml.meta">
   26 
   27   <name>mod_ftp</name>
   28   <description>Provides support for the File Transfer Protocol</description>
   29   <status>External</status> <!-- For now... -->
   30   <sourcefile>mod_ftp.c</sourcefile>
   31   <identifier>ftp_module</identifier>
   32   <compatibility>Apache 2.3 and higher</compatibility>
   33  
   34   <summary>
   35     <p>This module provides support for the File Transfer Protocol
   36       within the Apache HTTP Server.  It was originally developed by
   37       Covalent Technologies, Inc. and contributed by them to the
   38       Apache HTTP Server project.</p>
   39 
   40     <p>The FTP protocol module for Apache can work with the access
   41       control modules, mod_ssl and any dynamic content generator to
   42       provide veratile, scalable and secure FTP services.</p>
   43 
   44     <p>Further details, discussion and examples are provided in the
   45       <a href="../ftp/">FTP documentation</a>.</p>
   46   </summary>
   47 
   48   <!-- References to other documents or directives -->
   49   <seealso><a href="../ftp/">FTP Documentation</a></seealso>
   50   <seealso><module>mod_ssl</module></seealso>
   51  
   52   <directivesynopsis>
   53     <name>FTP</name>
   54     <description>Run an FTP Server on this host</description>
   55     <syntax>FTP on|off</syntax>
   56     <default>FTP off</default>
   57     <contextlist><context>server config</context>
   58       <context>virtual host</context></contextlist>
   59     <usage>
   60      <p>You must define a <directive>Listen</directive> directive to
   61        listen for FTP requests.</p>
   62     <note>This directive is <strong>not</strong> inherited from the
   63       global configuration file.</note>
   64     </usage>
   65   </directivesynopsis>
   66  
   67   <directivesynopsis>
   68     <name>FTPActiveRange</name>
   69     <description>Ports the server will use for connecting to the
   70       client</description>
   71     <syntax>FTPActiveRange <em>min [max]</em></syntax>
   72     <default><em>an ephemeral high-numbered port</em></default>
   73     <contextlist><context>server config</context>
   74       <context>virtual host</context></contextlist>
   75     <usage>
   76       <p>This directive defines the port or ports that mod_ftp will
   77         use when making an active connection to the client.  It accepts
   78         one or two arguments.  If only one argument is given, the server
   79         will always use that port.  If two arguments are given, the
   80         server will treat them as a range of ports to be used.</p>
   81       <note>Use a sufficient range to satisfy all client requests!  Between
   82         the time that the client makes a data channel request following the
   83         <code>PORT</code> or <code>EPRT</code> request, and the point at
   84         which the server has connected to the client, the origin port
   85         may be unavailable to any other client.</note>
   86       <note>Windows allows any process to access privileged ports.  However,
   87         to assign <code>FTPActiveRange</code> below 1024 on a unix platform,
   88         mod_ftp requires unix domain sockets, and will create an additional
   89         httpd process to serve these bound, low numbered ports to the httpd
   90         child worker processes.</note>
   91       <example>
   92         <p><code>FTPActiveRange 20</code></p>
   93         <p>Force the server to use the ftp-data scheme convention</p>
   94         <p><code>FTPActiveRange 5050</code></p>
   95         <p>Force the server to use port 5050</p>
   96         <p><code>FTPActiveRange 5050 5080</code></p>
   97         <p>Allow the server to use any port between 5050 and 5080,
   98           inclusive.</p>
   99       </example>
  100     </usage>
  101   </directivesynopsis>
  102 
  103   <directivesynopsis>
  104     <name>FTPBannerMessage</name>
  105     <description>Set initial login message</description>
  106     <syntax>FTPBannerMessage
  107       <em>message</em>|<em>file:/path/to/file</em></syntax>
  108     <default><em>none</em></default>
  109     <contextlist><context>server config</context>
  110       <context>virtual host</context></contextlist>
  111     <usage>
  112       <p>This directive sets a <em>message</em> that is displayed to
  113       the client on initial connection.  This can either be a string,
  114       or a path to a file.  The message can contain a variety of
  115       meta-characters:</p>
  116       <table>
  117     <tr><th><code>%T</code></th><td>Local time (in the form
  118             <code>Mon Apr 29 20:36:48 2002</code>)</td></tr>
  119     <tr><th><code>%C</code></th><td>Current working directory</td></tr>
  120     <tr><th><code>%h</code></th><td>Remote host</td></tr>
  121     <tr><th><code>%L</code></th><td>Local host</td></tr>
  122     <tr><th><code>%E</code></th><td>Server administrator (as given by
  123         <directive module="core">ServerAdmin</directive>)</td></tr>
  124     <tr><th><code>%a</code></th><td>Remote IP-address</td></tr>
  125     <tr><th><code>%A</code></th><td>Local IP-address</td></tr>
  126     <tr><th><code>%u</code></th><td>Remote user</td></tr>
  127     <tr><th><code>%f</code></th><td>Number of files transferred</td></tr>
  128     <tr><th><code>%t</code></th><td>Total bytes downloaded</td></tr>
  129     <tr><th><code>%x</code></th><td>Number of data transfers</td></tr>
  130     <tr><th><code>%b</code></th><td>Total traffic for the session (both
  131         control and data)</td></tr>
  132       </table>
  133     </usage>
  134   </directivesynopsis>
  135 
  136   <directivesynopsis>
  137     <name>FTPDataBlockSize</name>
  138     <description>Block size in bytes between control channel tests</description>
  139     <syntax>FTPDataBlockSize <em>bytes</em></syntax>
  140     <default>FTPDataBlockSize 48000</default>
  141     <contextlist><context>server config</context>
  142       <context>virtual host</context></contextlist>
  143     <usage>
  144       <p>When mod_ftp is transmitting data via the operating system,
  145         it's not possible to monitor the control channel for <code>ABOR</code>
  146         signals.  FTPDataBlockSize partitions the transfer; between each block
  147         mod_ftp will see if there is a pending control channel request, or if
  148         the socket is ready to send more data, and proceed to the next block.
  149         Based on anticipated bandwidth, set this value to a reasonable window
  150         of time in which the server should answer the control channel.</p>
  151     </usage>
  152   </directivesynopsis>
  153 
  154   <directivesynopsis>
  155     <name>FTPDirUmask</name>
  156     <description>Set the umask for created directory</description>
  157     <syntax>FTPDirUmask <em>umask</em></syntax>
  158     <default>FTPDirUmask 022</default>
  159     <contextlist>
  160       <context>server config</context>
  161       <context>virtual host</context>
  162       <context>directory</context>
  163       <context>.htaccess</context>
  164     </contextlist>
  165     <override>FileInfo</override>
  166     <usage>
  167       <p>This directive sets the permission mask for directory creation
  168     access. The default is 022 which gives the owner complete
  169     access and disables write access for the group and other
  170     users.</p>
  171       <note>This directive is not supported on Windows.</note>
  172     </usage>
  173   </directivesynopsis>
  174  
  175   <directivesynopsis>
  176     <name>FTPDocRootEnv</name>
  177     <description>Set the DocumentRoot based on the given environment
  178       variable, such as a per-user LDAP property</description>
  179     <syntax>FTPDocRootEnv <em>envvar</em></syntax>
  180     <default><em>none</em></default>
  181     <contextlist><context>server config</context>
  182       <context>virtual host</context></contextlist>
  183     <usage>
  184       <p>This directive will cause FTP to use the value of the
  185     <code>envvar</code> environment variable in place of the
  186     default <code>DocumentRoot</code>, if the environment variable
  187     is defined.  The <code>envvar</code> variable must contain a
  188     full, rooted file path, e.g. <code>/some/path</code> on Unix
  189     or <code>d:/some/path</code> on Windows.</p>
  190       <p>This may be used with any authentication module which sets
  191         the value of an environment variable based on the logged in
  192         user or another condition (similar to <module>mod_env</module>
  193         or <module>mod_setenvif</module> to change FTP's Document Root
  194         on a per-user basis.</p>
  195       <note>This directive is <strong>not</strong> inherited from the
  196         global configuration file.</note>
  197     </usage>
  198   </directivesynopsis>
  199 
  200   <directivesynopsis>
  201     <name>FTPEPSVIgnoreFamily</name>
  202     <description>Force EPSV to ignore the requested IP family
  203      (IPv4 vs. IPv6)</description>
  204     <syntax>FTPEPSVIgnoreFamily <em>On</em></syntax>
  205     <default>FTPEPSVIgnoreFamily Off</default>
  206     <contextlist><context>server config</context>
  207       <context>virtual host</context></contextlist>
  208     <usage>
  209       <p>This directive allows the client's <code>EPSV</code> request to bind
  210         to the local address, ignoring IPv4 vs. IPv6 requested by the client,
  211         in order to work around network address translation which presented
  212         an apparently different family.
  213         You may find this useful when the FTP Server is behind a firewall.</p>
  214     </usage>
  215   </directivesynopsis>
  216 
  217   <directivesynopsis>
  218     <name>FTPExitMessage</name>
  219     <description>Set logout message</description>
  220     <syntax>FTPExitMessage
  221       <em>message</em>|<em>file:/path/to/file</em></syntax>
  222     <default><em>none</em></default>
  223     <contextlist><context>server config</context>
  224       <context>virtual host</context></contextlist>
  225     <usage><p>This directive sets a <em>message</em> that is displayed to
  226     the client on disconnect.  This can either be a string, or a
  227     path to a file.  The message can contain a variety of
  228     meta-characters (see
  229     <directive module="mod_ftp">FTPBannerMessage</directive>).</p>
  230     </usage>
  231   </directivesynopsis>
  232 
  233   <directivesynopsis>
  234     <name>FTPHomeDir</name> <description>Set the path to directory
  235       containing user's home directories</description>
  236     <syntax>FTPHomeDir /directory</syntax>
  237     <default><em>none</em></default>
  238     <contextlist><context>server config</context>
  239       <context>virtual host</context></contextlist>
  240     <usage><p>This directive defines where the user home <em>directory</em>
  241     is located.  This directory must be given as an absolute path,
  242     but is actually relative to the configured
  243     <directive module="core">DocumentRoot</directive> for the server.  For
  244     example, <code>FTPHomeDir /home</code> will cause the Apache FTP
  245         Server to look for the user home in the directory <directive
  246           module="code">DocumentRoot</directive><code
  247                                    >/home/</code><code>username</code>
  248     (where <em>username</em> is the login name of the user).</p>
  249       <p>If <directive>FTPHomeDir</directive> has been specified and
  250     the home directory for the user does not exist, the server logs
  251     an error and user is logged into the root
  252     ("<code>/</code>") directory.  If you want the home
  253     directory created automatically, see the
  254     <directive>CreateHomeDirs</directive> option to the
  255     <directive module="mod_ftp">FTPOptions</directive> directive.</p>
  256       <note>This directive is <strong>not</strong> inherited from the
  257         global configuration file.</note>
  258     </usage>
  259   </directivesynopsis>
  260 
  261   <directivesynopsis>
  262     <name>FTPImplicitSSL</name>
  263     <description>Use SSL implicitly</description>
  264     <syntax>FTPImplicitSSL on|off</syntax>
  265     <default>FTPImplicitSSL off</default>
  266     <contextlist><context>server config</context>
  267       <context>virtual host</context></contextlist>
  268     <usage>
  269       <p>This directive determines the security on the control
  270     connection when the user connects.  When set to
  271     <code>On</code>, the user is expected to connect using SSL.
  272     When set to <code>Off</code>, the user must connect insecurely
  273     then issue the <code>AUTH</code> command to start a secure
  274     session.</p>
  275       <note>This directive is <strong>not</strong> inherited from the global
  276     configuration file.</note>
  277     </usage>
  278   </directivesynopsis>
  279 
  280   <directivesynopsis>
  281     <name>FTPJailUser</name>
  282     <description>Users are not allowed to leave their home
  283       directories</description>
  284     <syntax>FTPJailUser on|off</syntax>
  285     <default>FTPJailUser off</default>
  286     <contextlist><context>server config</context>
  287       <context>virtual host</context></contextlist>
  288     <usage>
  289       <p>This directive confines the user to the directory tree in
  290     which they were placed upon login.  The user can access any
  291     subdirectory of their default directory, but cannot access the
  292     parent directory or any other related directories.</p>
  293       <p>If the <directive module="mod_ftp">FTPHomeDir</directive>
  294     directive is not used, then <directive>FTPJailUser</directive>
  295     has no effect. This combination of directives can be very
  296     powerful for restricting where in your filesystem users may
  297     traverse.</p>
  298       <note>This directive is <strong>not</strong> inherited from the
  299     global configuration file.</note>
  300     </usage>
  301   </directivesynopsis>
  302 
  303   <directivesynopsis>
  304     <name>FTPLimitDBFile</name>
  305     <description>Set the location for the Login Limit DB file</description>
  306     <syntax>FTPLimitDBFile <em>file-path</em></syntax>
  307     <default>FTPLimitDBFile logs/ftplogins</default>
  308     <contextlist><context>server config</context>
  309     </contextlist>
  310     <usage>
  311       <p>To provide <directive module="mod_ftp">FTPLimitLoginUser</directive>,
  312         <directive module="mod_ftp">FTPLimitLoginServer</directive> and
  313         <directive module="mod_ftp">FTPLimitLoginIP</directive>
  314         features, mod_ftp uses a small DBM file to store login data.  This
  315     directive determines the filename-path of that database file.
  316     If either <code>FTPLimit</code> directive is used, this directive
  317         must specify a filename for this DBM, writeable by the server.</p>
  318       <example><code>FTPLimitDBFile logs/ftplogins</code></example>
  319     </usage>
  320   </directivesynopsis>
  321 
  322   <directivesynopsis>
  323     <name>FTPLimitLoginIP</name>
  324     <description>Set the maximum number of concurrent logins per IP
  325       address</description>
  326     <syntax></syntax>
  327     <default>FTPLimitLoginIP 0 <em>(unlimited)</em></default>
  328     <contextlist><context>server config</context>
  329       <context>virtual host</context></contextlist>
  330     <usage>
  331       <p>This directive allows the administrator to limit the total
  332     number of concurrent/simultaneous FTP logins.  For example, if
  333     set to 10, no more than 10 FTP logins from the same IP address
  334         would be allowed.  The default value is 0 (unlimited).</p>
  335     </usage>
  336   </directivesynopsis>
  337 
  338   <directivesynopsis>
  339     <name>FTPLimitLoginServer</name>
  340     <description>Set the maximum number of concurrent logins per
  341       server</description>
  342     <syntax>FTPLimitLoginServer <em>number</em></syntax>
  343     <default>FTPLimitLoginServer 0 <em>(unlimited)</em></default>
  344     <contextlist><context>server config</context>
  345     </contextlist>
  346     <usage>
  347       <p>This directive allows the administrator to limit the total
  348     number of concurrent/simultaneous FTP logins.  For example, if
  349     set to 100, no more than 100 FTP logins to the same virtual host
  350         would be allowed.  The default value is 0 (unlimited).</p>
  351     </usage>
  352   </directivesynopsis>
  353 
  354   <directivesynopsis>
  355     <name>FTPLimitLoginUser</name>
  356     <description>Set the maximum number of concurrent logins per
  357       user</description>
  358     <syntax>FTPLimitLoginUser <em>number</em></syntax>
  359     <default>FTPLimitLoginUser 0 <em>(unlimited)</em></default>
  360     <contextlist><context>server config</context>
  361     </contextlist>
  362     <usage>
  363       <p>This directive allows the administrator to limit the
  364     number of concurrent/simultaneous logins of a single FTP user.
  365     For example, if set to 3, then no single FTP account would be
  366     allowed to have more than 3 concurrent logins (including the
  367     guest/anonymous account).  The default value is 0 (unlimited).</p>
  368     </usage>
  369   </directivesynopsis>
  370 
  371   <directivesynopsis>
  372     <name>FTPLowPortSock</name>
  373     <description>The filename prefix of the unix domain socket used to pass low numbered origin port requests</description>
  374     <syntax>FTPLowPortSock <em>pathname</em></syntax>
  375     <default>FTPLowPortSock logs/ftp-lowportd-sock</default>
  376     <contextlist><context>server config</context></contextlist>
  377     <usage>
  378         <p>This directive sets the filename prefix of the socket to use for
  379           communication with the CGI daemon, an extension corresponding to
  380           the process ID of the server will be appended. The socket will be
  381           created using the permissions of the user who starts Apache (usually
  382           root). To maintain the security of communications with CGI
  383           scripts, it is important that no other user has permission to
  384           write in the directory where the socket is located.</p>
  385       <example><title>Example</title>
  386         FTPLowPortSock /var/run/cgid.sock
  387       </example>
  388     </usage>
  389   </directivesynopsis>
  390 
  391   <directivesynopsis>
  392     <name>FTPMaxLoginAttempts</name>
  393     <description>Maximum number of login attempts</description>
  394     <syntax>FTPMaxLoginAttempts <em>attempts</em></syntax>
  395     <default>FTPMaxLoginAttempts 3</default>
  396     <contextlist><context>server config</context>
  397       <context>virtual host</context></contextlist>
  398     <usage>
  399       <p>This directive controls the number of failed
  400     <em>attempts</em> to log in that are allowed before breaking
  401     the connection and logging the failed attempts.</p>
  402     </usage>
  403   </directivesynopsis>
  404 
  405   <directivesynopsis>
  406     <name>FTPOptions</name>
  407     <description>Set options for this server</description>
  408     <syntax>FTPOptions <em>option1 [option2] ...</em></syntax>
  409     <default><em>none</em></default>
  410     <contextlist><context>server config</context>
  411       <context>virtual host</context></contextlist>
  412     <usage>
  413       <p>This directive sets per server options.</p>
  414       <p>Current options:</p>
  415       <dl>
  416     <dt><code>AllowProxyPASV</code></dt>
  417     <dd><p>This option permits connection to the server's data
  418             channel when it originates from an IP address other than
  419             the control channel client's IP.  It affects both the
  420             <code>PASV</code> and <code>EPSV</code> data connections.`
  421         As proxy FTP is rarely used and considered potentially
  422             insecure, this directive should be used with caution.</p>
  423     </dd>
  424     <dt><code>AllowProxyPORT</code></dt>
  425     <dd><p>This option permits the server to create a data channel
  426             connection to an IP address other than the control channel
  427             client's IP.  It affects both the <code>PORT</code> and
  428             <code>EPRT</code> data connections.  As proxy FTP is rarely
  429             used and considered potentially insecure, this directive
  430             should be used with caution.</p>
  431     </dd>
  432     <dt><code>CheckMaxClients</code></dt>
  433     <dd><p>This option denies login to a client when the server is
  434         full. If it is not enabled, the client will wait on the
  435         accept queue until another client disconnects.</p>
  436     </dd>
  437     <dt><code>CreateHomeDirs</code></dt>
  438     <dd><p>This option causes the server to automatically create a
  439         home directory in the location specified by the
  440         <directive module="mod_ftp">FTPHomeDir</directive> directive.
  441         If the <directive module="mod_ftp">FTPHomeDir</directive>
  442         directive is not specified, this option has no effect.</p>
  443       <note><p>Setting this option on an anonymous site is not
  444           recommended.  This is because a directory is created for
  445           each unique user (usually identified by their email
  446           address) that logs onto the server. </p>
  447         <p>This option will only work if the <directive
  448         module="mod_ftp">FTPHomeDir</directive> directories are
  449           accessible to the process owner of the Apache HTTP Server,
  450           typically on UNIX systems the user
  451           <code>nobody</code>.</p>
  452       </note>
  453     </dd>
  454     <dt><code>LISTisNLST</code></dt>
  455     <dd><p>This option causes the server to display identical output
  456       when it receives either a <code>LIST</code> request or an
  457       <code>NLST</code> request. Unlike
  458       <directive>NLSTisLIST</directive>, the output is a list of
  459       files without details.  If the -l option is passed to
  460       <code>LIST</code> requests, details will be provided,
  461       whether this option is set or not.</p>
  462     </dd>
  463     <dt><code>NLSTisLIST</code></dt>
  464     <dd><p>This option causes the server
  465         to display identical output when it receives either a
  466         <code>LIST</code> request or an <code>NLST</code> request.
  467         Like <directive>NLSTShowDirs</directive>, this option is
  468         used for FTP clients that send different requests for
  469         <code>ls</code> or <code>dir</code> commands.</p>
  470       <note>
  471         <p>Setting this option will cause commands that request
  472         multiple files to fail and should be used with
  473         caution.</p>
  474       </note>
  475     </dd>
  476     <dt><code>NLSTShowDirs</code></dt>
  477     <dd><p>This option causes the server
  478         to display directories as well as files when it receives
  479         an <code>NLST</code> request.  Some FTP clients send an
  480         <code>NLST</code> requests when the user issues an
  481         <code>ls</code> or <code>dir</code> commands.  Since the
  482         default response is to display files only, the user may be
  483         confused.</p>
  484       <note><p>
  485           Setting this option will cause commands that request
  486           multiple files to fail and should be used with
  487           caution.</p>
  488       </note>
  489     </dd>
  490     <dt><code>NoUTF8Feature</code></dt>
  491     <dd><p>By default, mod_ftp will advertise <code>UTF8</code> in
  492             response to the <code>FEAT</code> command.  This ensures
  493             the client is aware they may use 8-bit filenames (rather
  494             than 7-bit ASCII), preferably using the UTF-8 character set.
  495             This flag, available only in the global context, disables
  496             this default behavior for all hosts, omitting <code>UTF8</code>
  497             from the <code>FEAT</code> server response.</p>
  498     </dd>
  499     <dt><code>RemoveUserGroup</code></dt>
  500     <dd><p>This option causes the
  501         server to print the UID and GID rather than the user name
  502         and group name for directory listings. It has no effect on
  503         Windows systems.</p>
  504     </dd>
  505     <dt><code>RequireSSL</code></dt>
  506     <dd><p>This option requires the client to issue an
  507         <code>AUTH</code> command to switch to SSL before sending any
  508         password information.  This is much like implicit SSL in that
  509         it forces the client to use SSL to send password information.
  510         The difference is that using the <code>RequireSSL</code>
  511         option will allow a client to connect without SSL, but then
  512         issue the <code>AUTH</code> SSL command before sending the
  513         username and password.</p>
  514     </dd>
  515     <dt><code>ShowUnAuthorizedFiles</code></dt>
  516     <dd><p>This option causes
  517         the server to show files that the user does not have
  518         authorization to retrieve and directories that the user
  519         does not have authorization to enter (<code>cd</code> will
  520         fail) when it receives a <code>LIST</code> or similar
  521             <code>NLST</code> command.  These commands will then behave
  522             as most standard FTP servers, where users see the list of
  523         all files and directories, even those they are not allowed
  524         to access.</p>
  525     </dd>
  526     <dt><code>StripHostname</code></dt>
  527     <dd><p>When the user presents a <code>USER {user@hostname}</code>
  528             command, strip the "@hostname" text from the provided name
  529             before presenting "user" to the authentication modules.
  530             Most commonly used in conjunction with the
  531             <directive>VirtualHostByUser</directive> option below.</p>
  532     </dd>
  533     <dt><code>VirtualHostByUser</code></dt>
  534     <dd><p>When the user presents a <code>USER {user@hostname}</code>
  535             command, select a
  536             <directive module="core">VirtualHost</directive> by the "hostname"
  537             text of the provided name.  The 
  538             <directive module="core">NameVirtualHost</directive> must be
  539             configured appropriately to match these hosts.  If no named 
  540             virtual host matches by its 
  541             <directive module="core">ServerName</directive> or any of its
  542             <directive module="core">ServerAlias</directive>s, the login
  543             falls into the first matching VirtualHost by IP, just as HTTP
  544             treats an unmatched <code>Host:</code> header.</p>
  545     </dd>
  546       </dl>
  547     </usage>
  548   </directivesynopsis>
  549 
  550   <directivesynopsis>
  551     <name>FTPPASVaddr</name>
  552     <description>Set the apparent server IP address for PASV data
  553       channels</description>
  554     <syntax>FTPPASVAddr <em>IP address</em></syntax>
  555     <default><em>The server's actual IP address of the control channel
  556      connection</em></default>
  557     <contextlist><context>server config</context>
  558       <context>virtual host</context></contextlist>
  559     <usage>
  560       <p>This directive allows you to specify a different <em>IP address</em>
  561         to be presented to the client in response to <code>PASV</code>
  562         requests.  It has no effect on the IP address the server will
  563         listen on, use <directive module="mod_ftp">FTPPASVbindaddr</directive>
  564         instead to affect the IP address of the actual data connection.</p>
  565       <p>You may find this useful when the FTP Server is behind a firewall.
  566         It has <em>no</em> effect on <code>EPSV</code> requests.</p>
  567       <note>This directive is <strong>not</strong> inherited from the global
  568         configuration file.</note>
  569     </usage>
  570   </directivesynopsis>
  571 
  572   <directivesynopsis>
  573     <name>FTPPASVbindaddr</name>
  574     <description>Set and bind the allowed PASV server IP address for
  575       the data channel</description>
  576     <syntax>FTPPASVbindaddr <em>IP address</em></syntax>
  577     <default><em>The specified
  578       <directive module="mod_ftp">FTPPASVaddr</directive>, or in its 
  579       absense, the server's actual IP address of the control channel 
  580       connection</em></default>
  581     <contextlist><context>server config</context>
  582       <context>virtual host</context></contextlist>
  583     <usage>
  584       <p>This directive is similar to the
  585         <directive module="mod_ftp">FTPPASVaddr</directive> directive,
  586         except that the Apache FTP Server attempts to bind to the specified
  587         <em>IP address</em>, and note that any
  588         <directive module="mod_ftp">FTPPASVaddr</directive> directive
  589         continues to override the address presented to the client.</p>
  590       <p>You may find this useful when the FTP Server is behind a firewall.
  591         It has <em>no</em> effect on <code>EPSV</code> requests.</p>
  592       <note>This directive is <strong>not</strong> inherited from the
  593         global configuration file.</note>
  594     </usage>
  595   </directivesynopsis>
  596 
  597   <directivesynopsis>
  598     <name>FTPPASVrange</name>
  599     <description>Set the allowed passive port range</description>
  600     <syntax>FTPPASVrange <em>number number</em></syntax>
  601     <default><em>an ephemeral high-numbered port</em></default>
  602     <contextlist><context>server config</context>
  603       <context>virtual host</context></contextlist>
  604     <usage>
  605       <p>This directive defines the port range (<em>number</em> to
  606         <em>number</em> inclusive) to be used for all passive connections,
  607         including <code>PASV</code> and <code>EPSV</code> requests.
  608         This directive is designed for use in environments where you
  609         only want to open a specific range of ports on your
  610         firewall.</p>
  611       <note>Use a sufficient range to satisfy all client requests!
  612         Between the time that the server answers a <code>PASV</code>
  613         or <code>EPSV</code> request, and the point at which the client
  614         connects to the indiciated port, that specific port is
  615         unavailable to any other client.</note>
  616     </usage>
  617   </directivesynopsis>
  618 
  619   <directivesynopsis>
  620     <name>FTPReadmeMessage</name>
  621     <description>Set per-directory Readme file</description>
  622     <syntax>FTPReadmeMessage
  623       <em>message</em>|<em>file:/path/to/file</em>
  624     </syntax>
  625     <default><em>none</em></default>
  626     <contextlist>
  627       <context>server config</context>
  628       <context>virtual host</context>
  629       <context>directory</context>
  630       <context>.htaccess</context>
  631     </contextlist>
  632     <override>Any</override>
  633     <usage><p>This directive sets a <em>message</em> that is displayed
  634     to the client upon entering a new directory.  This can either
  635     be a string, or a path to a file.  The message can contain a
  636     variety of meta-characters (see <directive
  637       module="mod_ftp">FTPBannerMessage</directive>).</p>
  638       <p>When this directive is placed in the <directive module="core"
  639       type="section">VirtualHost</directive> container, the README
  640     message will apply to all directories.  When it is used in a
  641     <directive module="core" type="section">Directory</directive>
  642     container or placed in an <code>.htaccess</code> file, only
  643     that directory will inherit the README message.</p>
  644       <p>Configuring a README message for a directory will also override any
  645     global README messages.</p>
  646     </usage>
  647   </directivesynopsis>
  648 
  649   <directivesynopsis>
  650     <name>FTPTimeoutData</name>
  651     <description>Idle time allowed during a data transfer</description>
  652     <syntax>FTPTimeoutData <em>time</em></syntax>
  653     <default>FTPTimeoutData 300</default>
  654     <contextlist><context>server config</context>
  655       <context>virtual host</context></contextlist>
  656     <usage>
  657       <p>This directive sets the <em>time</em> in seconds the server
  658     will wait during a data transfer. If no data is sent to the
  659     client in this amount of time, the data connection is
  660     closed.</p>
  661    </usage>
  662   </directivesynopsis>
  663 
  664   <directivesynopsis>
  665     <name>FTPTimeoutIdle</name>
  666     <description>Idle time allowed during a FTP session</description>
  667     <syntax>FTPTimeoutIdle <em>time</em></syntax>
  668     <default>FTPTimeoutIdle 600</default>
  669     <contextlist><context>server config</context>
  670       <context>virtual host</context></contextlist>
  671     <usage>
  672       <p>This directive sets the amount of <em>time</em> in seconds
  673     allowed between commands sent by the client. If no commands
  674     are received in this amount of time, the user is
  675     disconnected.</p>
  676     </usage>
  677   </directivesynopsis>
  678 
  679   <directivesynopsis>
  680     <name>FTPTimeoutLogin</name>
  681     <description>Idle time allowed when logging in</description>
  682     <syntax>FTPTimeoutLogin <em>time</em></syntax>
  683     <default>FTPTimeoutLogin 60</default>
  684     <contextlist><context>server config</context>
  685       <context>virtual host</context></contextlist>
  686     <usage>
  687       <p>This directive sets the amount of <em>time</em> in seconds
  688     that a user has to send a username to the server. If the
  689     username is not received in this amount of time, the user is
  690     disconnected.</p>
  691     </usage>
  692   </directivesynopsis>
  693 
  694   <directivesynopsis>
  695     <name>FTPUmask</name>
  696     <description>Set the umask for created files</description>
  697     <syntax>FTPUmask <em>umask</em></syntax>
  698     <default>FTPUmask 022</default>
  699     <contextlist>
  700       <context>server config</context>
  701       <context>virtual host</context>
  702       <context>directory</context>
  703       <context>.htaccess</context>
  704     </contextlist>
  705     <override>FileInfo</override>
  706     <usage>
  707       <p>This directive sets the permission mask for file creation
  708     access. The default is 022 which gives the owner complete
  709     access and disables write access for the group and other
  710     users.</p>
  711       <note>This directive is not supported on Windows.</note>
  712     </usage>
  713   </directivesynopsis>
  714  
  715 </modulesynopsis>
  716