Hallo, dies ist ein Test.
PWD: /www/data-lst1/unixsoft/unixsoft/kaempfer/.public_html
Running in File Mode
Relative path: ./../../../../../server/data/WWW/manual.neu/mod_ftp.html
Real path: /www/server/data/WWW/manual.neu/mod_ftp.html
Zurück
<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><!-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX This file is generated from xml source: DO NOT EDIT XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX --> <title>mod_ftp - Apache HTTP Server</title> <link href="../style/css/manual.css" rel="stylesheet" media="all" type="text/css" title="Main stylesheet" /> <link href="../style/css/manual-loose-100pc.css" rel="alternate stylesheet" media="all" type="text/css" title="No Sidebar - Default font size" /> <link href="../style/css/manual-print.css" rel="stylesheet" media="print" type="text/css" /> <link href="../images/favicon.ico" rel="shortcut icon" /></head> <body> <div id="page-header"> <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p> <p class="apache">Apache HTTP Server Version 2.2</p> <img alt="" src="../images/feather.gif" /></div> <div class="up"><a href="./"><img title="<-" alt="<-" src="../images/left.gif" /></a></div> <div id="path"> <a href="http://www.apache.org/">Apache</a> > <a href="http://httpd.apache.org/">HTTP Server</a> > <a href="http://httpd.apache.org/docs/">Documentation</a> > <a href="../">Version 2.2</a> > <a href="./">Modules</a></div> <div id="page-content"> <div id="preamble"><h1>Apache Module mod_ftp</h1> <div class="toplang"> <p><span>Available Languages: </span><a href="../en/mod/mod_ftp.html" title="English"> en </a></p> </div> <table class="module"><tr><th><a href="module-dict.html#Description">Description:</a></th><td>Provides support for the File Transfer Protocol</td></tr> <tr><th><a href="module-dict.html#Status">Status:</a></th><td /></tr> <tr><th><a href="module-dict.html#ModuleIdentifier">Module�Identifier:</a></th><td>ftp_module</td></tr> <tr><th><a href="module-dict.html#SourceFile">Source�File:</a></th><td>mod_ftp.c</td></tr> <tr><th><a href="module-dict.html#Compatibility">Compatibility:</a></th><td>Apache 2.2 and higher</td></tr></table> <h3>Summary</h3> <p>This module provides support for the File Transfer Protocol within the Apache HTTP Server. It was originally developed by Covalent Technologies, Inc. and contributed by them to the Apache HTTP Server project.</p> <p>The FTP protocol module for Apache can work with the access control modules, mod_ssl and any dynamic content generator to provide veratile, scalable and secure FTP services.</p> <p>Further details, discussion and examples are provided in the <a href="../ftp/">FTP documentation</a>.</p> </div> <div id="quickview"><h3 class="directives">Directives</h3> <ul id="toc"> <li><img alt="" src="../images/down.gif" /> <a href="#ftp">FTP</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#ftpactiverange">FTPActiveRange</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#ftpbannermessage">FTPBannerMessage</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#ftpdatablocksize">FTPDataBlockSize</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#ftpdirumask">FTPDirUmask</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#ftpdocrootenv">FTPDocRootEnv</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#ftpepsvignorefamily">FTPEPSVIgnoreFamily</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#ftpexitmessage">FTPExitMessage</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#ftphomedir">FTPHomeDir</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#ftpimplicitssl">FTPImplicitSSL</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#ftpjailuser">FTPJailUser</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#ftplimitdbfile">FTPLimitDBFile</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#ftplimitloginip">FTPLimitLoginIP</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#ftplimitloginserver">FTPLimitLoginServer</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#ftplimitloginuser">FTPLimitLoginUser</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#ftplowportsock">FTPLowPortSock</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#ftpmaxloginattempts">FTPMaxLoginAttempts</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#ftpoptions">FTPOptions</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#ftppasvaddr">FTPPASVaddr</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#ftppasvbindaddr">FTPPASVbindaddr</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#ftppasvrange">FTPPASVrange</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#ftpreadmemessage">FTPReadmeMessage</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#ftptimeoutdata">FTPTimeoutData</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#ftptimeoutidle">FTPTimeoutIdle</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#ftptimeoutlogin">FTPTimeoutLogin</a></li> <li><img alt="" src="../images/down.gif" /> <a href="#ftpumask">FTPUmask</a></li> </ul> <h3>See also</h3> <ul class="seealso"> <li><a href="../ftp/">FTP Documentation</a></li> <li><code class="module"><a href="../mod/mod_ssl.html">mod_ssl</a></code></li> </ul></div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="FTP" id="FTP">FTP</a> <a name="ftp" id="ftp">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Run an FTP Server on this host</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>FTP on|off</code></td></tr> <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>FTP off</code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td /></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ftp</td></tr> </table> <p>You must define a <code class="directive">Listen</code> directive to listen for FTP requests.</p> <div class="note">This directive is <strong>not</strong> inherited from the global configuration file.</div> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="FTPActiveRange" id="FTPActiveRange">FTPActiveRange</a> <a name="ftpactiverange" id="ftpactiverange">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Ports the server will use for connecting to the client</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>FTPActiveRange <em>min [max]</em></code></td></tr> <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>an ephemeral high-numbered port</code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td /></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ftp</td></tr> </table> <p>This directive defines the port or ports that mod_ftp will use when making an active connection to the client. It accepts one or two arguments. If only one argument is given, the server will always use that port. If two arguments are given, the server will treat them as a range of ports to be used.</p> <div class="note">Use a sufficient range to satisfy all client requests! Between the time that the client makes a data channel request following the <code>PORT</code> or <code>EPRT</code> request, and the point at which the server has connected to the client, the origin port may be unavailable to any other client.</div> <div class="note">Windows allows any process to access privileged ports. However, to assign <code>FTPActiveRange</code> below 1024 on a unix platform, mod_ftp requires unix domain sockets, and will create an additional httpd process to serve these bound, low numbered ports to the httpd child worker processes.</div> <div class="example"><p><code>FTPActiveRange 20</code></p><p>Force the server to use the ftp-data scheme convention</p><p><code>FTPActiveRange 5050</code></p><p>Force the server to use port 5050</p><p><code>FTPActiveRange 5050 5080</code></p><p>Allow the server to use any port between 5050 and 5080, inclusive.</p></div> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="FTPBannerMessage" id="FTPBannerMessage">FTPBannerMessage</a> <a name="ftpbannermessage" id="ftpbannermessage">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Set initial login message</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>FTPBannerMessage <em>message</em>|<em>file:/path/to/file</em></code></td></tr> <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>none</code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td /></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ftp</td></tr> </table> <p>This directive sets a <em>message</em> that is displayed to the client on initial connection. This can either be a string, or a path to a file. The message can contain a variety of meta-characters:</p> <table> <tr><th><code>%T</code></th><td>Local time (in the form <code>Mon Apr 29 20:36:48 2002</code>)</td></tr> <tr><th><code>%C</code></th><td>Current working directory</td></tr> <tr><th><code>%h</code></th><td>Remote host</td></tr> <tr><th><code>%L</code></th><td>Local host</td></tr> <tr><th><code>%E</code></th><td>Server administrator (as given by <code class="directive"><a href="../mod/core.html#serveradmin">ServerAdmin</a></code>)</td></tr> <tr><th><code>%a</code></th><td>Remote IP-address</td></tr> <tr><th><code>%A</code></th><td>Local IP-address</td></tr> <tr><th><code>%u</code></th><td>Remote user</td></tr> <tr><th><code>%f</code></th><td>Number of files transferred</td></tr> <tr><th><code>%t</code></th><td>Total bytes downloaded</td></tr> <tr><th><code>%x</code></th><td>Number of data transfers</td></tr> <tr><th><code>%b</code></th><td>Total traffic for the session (both control and data)</td></tr> </table> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="FTPDataBlockSize" id="FTPDataBlockSize">FTPDataBlockSize</a> <a name="ftpdatablocksize" id="ftpdatablocksize">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Block size in bytes between control channel tests</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>FTPDataBlockSize <em>bytes</em></code></td></tr> <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>FTPDataBlockSize 48000</code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td /></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ftp</td></tr> </table> <p>When mod_ftp is transmitting data via the operating system, it's not possible to monitor the control channel for <code>ABOR</code> signals. FTPDataBlockSize partitions the transfer; between each block mod_ftp will see if there is a pending control channel request, or if the socket is ready to send more data, and proceed to the next block. Based on anticipated bandwidth, set this value to a reasonable window of time in which the server should answer the control channel.</p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="FTPDirUmask" id="FTPDirUmask">FTPDirUmask</a> <a name="ftpdirumask" id="ftpdirumask">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Set the umask for created directory</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>FTPDirUmask <em>umask</em></code></td></tr> <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>FTPDirUmask 022</code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td /></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ftp</td></tr> </table> <p>This directive sets the permission mask for directory creation access. The default is 022 which gives the owner complete access and disables write access for the group and other users.</p> <div class="note">This directive is not supported on Windows.</div> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="FTPDocRootEnv" id="FTPDocRootEnv">FTPDocRootEnv</a> <a name="ftpdocrootenv" id="ftpdocrootenv">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Set the DocumentRoot based on the given environment variable, such as a per-user LDAP property</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>FTPDocRootEnv <em>envvar</em></code></td></tr> <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>none</code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td /></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ftp</td></tr> </table> <p>This directive will cause FTP to use the value of the <code>envvar</code> environment variable in place of the default <code>DocumentRoot</code>, if the environment variable is defined. The <code>envvar</code> variable must contain a full, rooted file path, e.g. <code>/some/path</code> on Unix or <code>d:/some/path</code> on Windows.</p> <p>This may be used with any authentication module which sets the value of an environment variable based on the logged in user or another condition (similar to <code class="module"><a href="../mod/mod_env.html">mod_env</a></code> or <code class="module"><a href="../mod/mod_setenvif.html">mod_setenvif</a></code> to change FTP's Document Root on a per-user basis.</p> <div class="note">This directive is <strong>not</strong> inherited from the global configuration file.</div> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="FTPEPSVIgnoreFamily" id="FTPEPSVIgnoreFamily">FTPEPSVIgnoreFamily</a> <a name="ftpepsvignorefamily" id="ftpepsvignorefamily">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Force EPSV to ignore the requested IP family (IPv4 vs. IPv6)</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>FTPEPSVIgnoreFamily <em>On</em></code></td></tr> <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>FTPEPSVIgnoreFamily Off</code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td /></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ftp</td></tr> </table> <p>This directive allows the client's <code>EPSV</code> request to bind to the local address, ignoring IPv4 vs. IPv6 requested by the client, in order to work around network address translation which presented an apparently different family. You may find this useful when the FTP Server is behind a firewall.</p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="FTPExitMessage" id="FTPExitMessage">FTPExitMessage</a> <a name="ftpexitmessage" id="ftpexitmessage">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Set logout message</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>FTPExitMessage <em>message</em>|<em>file:/path/to/file</em></code></td></tr> <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>none</code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td /></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ftp</td></tr> </table><p>This directive sets a <em>message</em> that is displayed to the client on disconnect. This can either be a string, or a path to a file. The message can contain a variety of meta-characters (see <code class="directive"><a href="#ftpbannermessage">FTPBannerMessage</a></code>).</p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="FTPHomeDir" id="FTPHomeDir">FTPHomeDir</a> <a name="ftphomedir" id="ftphomedir">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Set the path to directory containing user's home directories</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>FTPHomeDir /directory</code></td></tr> <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>none</code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td /></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ftp</td></tr> </table><p>This directive defines where the user home <em>directory</em> is located. This directory must be given as an absolute path, but is actually relative to the configured <code class="directive"><a href="../mod/core.html#documentroot">DocumentRoot</a></code> for the server. For example, <code>FTPHomeDir /home</code> will cause the Apache FTP Server to look for the user home in the directory <code class="directive"><a href="../mod/code.html#documentroot">DocumentRoot</a></code><code>/home/</code><code>username</code> (where <em>username</em> is the login name of the user).</p> <p>If <code class="directive">FTPHomeDir</code> has been specified and the home directory for the user does not exist, the server logs an error and user is logged into the root ("<code>/</code>") directory. If you want the home directory created automatically, see the <code class="directive">CreateHomeDirs</code> option to the <code class="directive"><a href="#ftpoptions">FTPOptions</a></code> directive.</p> <div class="note">This directive is <strong>not</strong> inherited from the global configuration file.</div> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="FTPImplicitSSL" id="FTPImplicitSSL">FTPImplicitSSL</a> <a name="ftpimplicitssl" id="ftpimplicitssl">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Use SSL implicitly</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>FTPImplicitSSL on|off</code></td></tr> <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>FTPImplicitSSL off</code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td /></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ftp</td></tr> </table> <p>This directive determines the security on the control connection when the user connects. When set to <code>On</code>, the user is expected to connect using SSL. When set to <code>Off</code>, the user must connect insecurely then issue the <code>AUTH</code> command to start a secure session.</p> <div class="note">This directive is <strong>not</strong> inherited from the global configuration file.</div> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="FTPJailUser" id="FTPJailUser">FTPJailUser</a> <a name="ftpjailuser" id="ftpjailuser">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Users are not allowed to leave their home directories</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>FTPJailUser on|off</code></td></tr> <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>FTPJailUser off</code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td /></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ftp</td></tr> </table> <p>This directive confines the user to the directory tree in which they were placed upon login. The user can access any subdirectory of their default directory, but cannot access the parent directory or any other related directories.</p> <p>If the <code class="directive"><a href="#ftphomedir">FTPHomeDir</a></code> directive is not used, then <code class="directive">FTPJailUser</code> has no effect. This combination of directives can be very powerful for restricting where in your filesystem users may traverse.</p> <div class="note">This directive is <strong>not</strong> inherited from the global configuration file.</div> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="FTPLimitDBFile" id="FTPLimitDBFile">FTPLimitDBFile</a> <a name="ftplimitdbfile" id="ftplimitdbfile">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Set the location for the Login Limit DB file</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>FTPLimitDBFile <em>file-path</em></code></td></tr> <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>FTPLimitDBFile logs/ftplogins</code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td /></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ftp</td></tr> </table> <p>To provide <code class="directive"><a href="#ftplimitloginuser">FTPLimitLoginUser</a></code>, <code class="directive"><a href="#ftplimitloginserver">FTPLimitLoginServer</a></code> and <code class="directive"><a href="#ftplimitloginip">FTPLimitLoginIP</a></code> features, mod_ftp uses a small DBM file to store login data. This directive determines the filename-path of that database file. If either <code>FTPLimit</code> directive is used, this directive must specify a filename for this DBM, writeable by the server.</p> <div class="example"><p><code><code>FTPLimitDBFile logs/ftplogins</code></code></p></div> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="FTPLimitLoginIP" id="FTPLimitLoginIP">FTPLimitLoginIP</a> <a name="ftplimitloginip" id="ftplimitloginip">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Set the maximum number of concurrent logins per IP address</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code /></td></tr> <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>FTPLimitLoginIP 0 (unlimited)</code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td /></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ftp</td></tr> </table> <p>This directive allows the administrator to limit the total number of concurrent/simultaneous FTP logins. For example, if set to 10, no more than 10 FTP logins from the same IP address would be allowed. The default value is 0 (unlimited).</p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="FTPLimitLoginServer" id="FTPLimitLoginServer">FTPLimitLoginServer</a> <a name="ftplimitloginserver" id="ftplimitloginserver">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Set the maximum number of concurrent logins per server</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>FTPLimitLoginServer <em>number</em></code></td></tr> <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>FTPLimitLoginServer 0 (unlimited)</code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td /></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ftp</td></tr> </table> <p>This directive allows the administrator to limit the total number of concurrent/simultaneous FTP logins. For example, if set to 100, no more than 100 FTP logins to the same virtual host would be allowed. The default value is 0 (unlimited).</p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="FTPLimitLoginUser" id="FTPLimitLoginUser">FTPLimitLoginUser</a> <a name="ftplimitloginuser" id="ftplimitloginuser">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Set the maximum number of concurrent logins per user</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>FTPLimitLoginUser <em>number</em></code></td></tr> <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>FTPLimitLoginUser 0 (unlimited)</code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td /></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ftp</td></tr> </table> <p>This directive allows the administrator to limit the number of concurrent/simultaneous logins of a single FTP user. For example, if set to 3, then no single FTP account would be allowed to have more than 3 concurrent logins (including the guest/anonymous account). The default value is 0 (unlimited).</p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="FTPLowPortSock" id="FTPLowPortSock">FTPLowPortSock</a> <a name="ftplowportsock" id="ftplowportsock">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>The filename prefix of the unix domain socket used to pass low numbered origin port requests</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>FTPLowPortSock <em>pathname</em></code></td></tr> <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>FTPLowPortSock logs/ftp-lowportd-sock</code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td /></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ftp</td></tr> </table> <p>This directive sets the filename prefix of the socket to use for communication with the CGI daemon, an extension corresponding to the process ID of the server will be appended. The socket will be created using the permissions of the user who starts Apache (usually root). To maintain the security of communications with CGI scripts, it is important that no other user has permission to write in the directory where the socket is located.</p> <div class="example"><h3>Example</h3><p><code> FTPLowPortSock /var/run/cgid.sock </code></p></div> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="FTPMaxLoginAttempts" id="FTPMaxLoginAttempts">FTPMaxLoginAttempts</a> <a name="ftpmaxloginattempts" id="ftpmaxloginattempts">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Maximum number of login attempts</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>FTPMaxLoginAttempts <em>attempts</em></code></td></tr> <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>FTPMaxLoginAttempts 3</code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td /></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ftp</td></tr> </table> <p>This directive controls the number of failed <em>attempts</em> to log in that are allowed before breaking the connection and logging the failed attempts.</p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="FTPOptions" id="FTPOptions">FTPOptions</a> <a name="ftpoptions" id="ftpoptions">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Set options for this server</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>FTPOptions <em>option1 [option2] ...</em></code></td></tr> <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>none</code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td /></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ftp</td></tr> </table> <p>This directive sets per server options.</p> <p>Current options:</p> <dl> <dt><code>AllowProxyPASV</code></dt> <dd><p>This option permits connection to the server's data channel when it originates from an IP address other than the control channel client's IP. It affects both the <code>PASV</code> and <code>EPSV</code> data connections.` As proxy FTP is rarely used and considered potentially insecure, this directive should be used with caution.</p> </dd> <dt><code>AllowProxyPORT</code></dt> <dd><p>This option permits the server to create a data channel connection to an IP address other than the control channel client's IP. It affects both the <code>PORT</code> and <code>EPRT</code> data connections. As proxy FTP is rarely used and considered potentially insecure, this directive should be used with caution.</p> </dd> <dt><code>CheckMaxClients</code></dt> <dd><p>This option denies login to a client when the server is full. If it is not enabled, the client will wait on the accept queue until another client disconnects.</p> </dd> <dt><code>CreateHomeDirs</code></dt> <dd><p>This option causes the server to automatically create a home directory in the location specified by the <code class="directive"><a href="#ftphomedir">FTPHomeDir</a></code> directive. If the <code class="directive"><a href="#ftphomedir">FTPHomeDir</a></code> directive is not specified, this option has no effect.</p> <div class="note"><p>Setting this option on an anonymous site is not recommended. This is because a directory is created for each unique user (usually identified by their email address) that logs onto the server. </p> <p>This option will only work if the <code class="directive"><a href="#ftphomedir">FTPHomeDir</a></code> directories are accessible to the process owner of the Apache HTTP Server, typically on UNIX systems the user <code>nobody</code>.</p> </div> </dd> <dt><code>LISTisNLST</code></dt> <dd><p>This option causes the server to display identical output when it receives either a <code>LIST</code> request or an <code>NLST</code> request. Unlike <code class="directive">NLSTisLIST</code>, the output is a list of files without details. If the -l option is passed to <code>LIST</code> requests, details will be provided, whether this option is set or not.</p> </dd> <dt><code>NLSTisLIST</code></dt> <dd><p>This option causes the server to display identical output when it receives either a <code>LIST</code> request or an <code>NLST</code> request. Like <code class="directive">NLSTShowDirs</code>, this option is used for FTP clients that send different requests for <code>ls</code> or <code>dir</code> commands.</p> <div class="note"> <p>Setting this option will cause commands that request multiple files to fail and should be used with caution.</p> </div> </dd> <dt><code>NLSTShowDirs</code></dt> <dd><p>This option causes the server to display directories as well as files when it receives an <code>NLST</code> request. Some FTP clients send an <code>NLST</code> requests when the user issues an <code>ls</code> or <code>dir</code> commands. Since the default response is to display files only, the user may be confused.</p> <div class="note"><p> Setting this option will cause commands that request multiple files to fail and should be used with caution.</p> </div> </dd> <dt><code>NoUTF8Feature</code></dt> <dd><p>By default, mod_ftp will advertise <code>UTF8</code> in response to the <code>FEAT</code> command. This ensures the client is aware they may use 8-bit filenames (rather than 7-bit ASCII), preferably using the UTF-8 character set. This flag, available only in the global context, disables this default behavior for all hosts, omitting <code>UTF8</code> from the <code>FEAT</code> server response.</p> </dd> <dt><code>RemoveUserGroup</code></dt> <dd><p>This option causes the server to print the UID and GID rather than the user name and group name for directory listings. It has no effect on Windows systems.</p> </dd> <dt><code>RequireSSL</code></dt> <dd><p>This option requires the client to issue an <code>AUTH</code> command to switch to SSL before sending any password information. This is much like implicit SSL in that it forces the client to use SSL to send password information. The difference is that using the <code>RequireSSL</code> option will allow a client to connect without SSL, but then issue the <code>AUTH</code> SSL command before sending the username and password.</p> </dd> <dt><code>ShowUnAuthorizedFiles</code></dt> <dd><p>This option causes the server to show files that the user does not have authorization to retrieve and directories that the user does not have authorization to enter (<code>cd</code> will fail) when it receives a <code>LIST</code> or similar <code>NLST</code> command. These commands will then behave as most standard FTP servers, where users see the list of all files and directories, even those they are not allowed to access.</p> </dd> <dt><code>StripHostname</code></dt> <dd><p>When the user presents a <code>USER {user@hostname}</code> command, strip the "@hostname" text from the provided name before presenting "user" to the authentication modules. Most commonly used in conjunction with the <code class="directive">VirtualHostByUser</code> option below.</p> </dd> <dt><code>VirtualHostByUser</code></dt> <dd><p>When the user presents a <code>USER {user@hostname}</code> command, select a <code class="directive"><a href="../mod/core.html#virtualhost">VirtualHost</a></code> by the "hostname" text of the provided name. The <code class="directive"><a href="../mod/core.html#namevirtualhost">NameVirtualHost</a></code> must be configured appropriately to match these hosts. If no named virtual host matches by its <code class="directive"><a href="../mod/core.html#servername">ServerName</a></code> or any of its <code class="directive"><a href="../mod/core.html#serveralias">ServerAlias</a></code>s, the login falls into the first matching VirtualHost by IP, just as HTTP treats an unmatched <code>Host:</code> header.</p> </dd> </dl> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="FTPPASVaddr" id="FTPPASVaddr">FTPPASVaddr</a> <a name="ftppasvaddr" id="ftppasvaddr">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Set the apparent server IP address for PASV data channels</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>FTPPASVAddr <em>IP address</em></code></td></tr> <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>The server's actual IP address of the control channel connection</code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td /></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ftp</td></tr> </table> <p>This directive allows you to specify a different <em>IP address</em> to be presented to the client in response to <code>PASV</code> requests. It has no effect on the IP address the server will listen on, use <code class="directive"><a href="#ftppasvbindaddr">FTPPASVbindaddr</a></code> instead to affect the IP address of the actual data connection.</p> <p>You may find this useful when the FTP Server is behind a firewall. It has <em>no</em> effect on <code>EPSV</code> requests.</p> <div class="note">This directive is <strong>not</strong> inherited from the global configuration file.</div> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="FTPPASVbindaddr" id="FTPPASVbindaddr">FTPPASVbindaddr</a> <a name="ftppasvbindaddr" id="ftppasvbindaddr">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Set and bind the allowed PASV server IP address for the data channel</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>FTPPASVbindaddr <em>IP address</em></code></td></tr> <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>The specified <code class="directive"><a href="#ftppasvaddr">FTPPASVaddr</a></code>, or in its absense, the server's actual IP address of the control channel connection</code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td /></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ftp</td></tr> </table> <p>This directive is similar to the <code class="directive"><a href="#ftppasvaddr">FTPPASVaddr</a></code> directive, except that the Apache FTP Server attempts to bind to the specified <em>IP address</em>, and note that any <code class="directive"><a href="#ftppasvaddr">FTPPASVaddr</a></code> directive continues to override the address presented to the client.</p> <p>You may find this useful when the FTP Server is behind a firewall. It has <em>no</em> effect on <code>EPSV</code> requests.</p> <div class="note">This directive is <strong>not</strong> inherited from the global configuration file.</div> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="FTPPASVrange" id="FTPPASVrange">FTPPASVrange</a> <a name="ftppasvrange" id="ftppasvrange">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Set the allowed passive port range</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>FTPPASVrange <em>number number</em></code></td></tr> <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>an ephemeral high-numbered port</code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td /></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ftp</td></tr> </table> <p>This directive defines the port range (<em>number</em> to <em>number</em> inclusive) to be used for all passive connections, including <code>PASV</code> and <code>EPSV</code> requests. This directive is designed for use in environments where you only want to open a specific range of ports on your firewall.</p> <div class="note">Use a sufficient range to satisfy all client requests! Between the time that the server answers a <code>PASV</code> or <code>EPSV</code> request, and the point at which the client connects to the indiciated port, that specific port is unavailable to any other client.</div> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="FTPReadmeMessage" id="FTPReadmeMessage">FTPReadmeMessage</a> <a name="ftpreadmemessage" id="ftpreadmemessage">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Set per-directory Readme file</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>FTPReadmeMessage <em>message</em>|<em>file:/path/to/file</em> </code></td></tr> <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>none</code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>Any</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td /></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ftp</td></tr> </table><p>This directive sets a <em>message</em> that is displayed to the client upon entering a new directory. This can either be a string, or a path to a file. The message can contain a variety of meta-characters (see <code class="directive"><a href="#ftpbannermessage">FTPBannerMessage</a></code>).</p> <p>When this directive is placed in the <code class="directive"><a href="../mod/core.html#virtualhost"><VirtualHost></a></code> container, the README message will apply to all directories. When it is used in a <code class="directive"><a href="../mod/core.html#directory"><Directory></a></code> container or placed in an <code>.htaccess</code> file, only that directory will inherit the README message.</p> <p>Configuring a README message for a directory will also override any global README messages.</p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="FTPTimeoutData" id="FTPTimeoutData">FTPTimeoutData</a> <a name="ftptimeoutdata" id="ftptimeoutdata">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Idle time allowed during a data transfer</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>FTPTimeoutData <em>time</em></code></td></tr> <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>FTPTimeoutData 300</code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td /></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ftp</td></tr> </table> <p>This directive sets the <em>time</em> in seconds the server will wait during a data transfer. If no data is sent to the client in this amount of time, the data connection is closed.</p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="FTPTimeoutIdle" id="FTPTimeoutIdle">FTPTimeoutIdle</a> <a name="ftptimeoutidle" id="ftptimeoutidle">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Idle time allowed during a FTP session</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>FTPTimeoutIdle <em>time</em></code></td></tr> <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>FTPTimeoutIdle 600</code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td /></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ftp</td></tr> </table> <p>This directive sets the amount of <em>time</em> in seconds allowed between commands sent by the client. If no commands are received in this amount of time, the user is disconnected.</p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="FTPTimeoutLogin" id="FTPTimeoutLogin">FTPTimeoutLogin</a> <a name="ftptimeoutlogin" id="ftptimeoutlogin">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Idle time allowed when logging in</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>FTPTimeoutLogin <em>time</em></code></td></tr> <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>FTPTimeoutLogin 60</code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td /></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ftp</td></tr> </table> <p>This directive sets the amount of <em>time</em> in seconds that a user has to send a username to the server. If the username is not received in this amount of time, the user is disconnected.</p> </div> <div class="top"><a href="#page-header"><img alt="top" src="../images/up.gif" /></a></div> <div class="directive-section"><h2><a name="FTPUmask" id="FTPUmask">FTPUmask</a> <a name="ftpumask" id="ftpumask">Directive</a></h2> <table class="directive"> <tr><th><a href="directive-dict.html#Description">Description:</a></th><td>Set the umask for created files</td></tr> <tr><th><a href="directive-dict.html#Syntax">Syntax:</a></th><td><code>FTPUmask <em>umask</em></code></td></tr> <tr><th><a href="directive-dict.html#Default">Default:</a></th><td><code>FTPUmask 022</code></td></tr> <tr><th><a href="directive-dict.html#Context">Context:</a></th><td>server config, virtual host, directory, .htaccess</td></tr> <tr><th><a href="directive-dict.html#Override">Override:</a></th><td>FileInfo</td></tr> <tr><th><a href="directive-dict.html#Status">Status:</a></th><td /></tr> <tr><th><a href="directive-dict.html#Module">Module:</a></th><td>mod_ftp</td></tr> </table> <p>This directive sets the permission mask for file creation access. The default is 022 which gives the owner complete access and disables write access for the group and other users.</p> <div class="note">This directive is not supported on Windows.</div> </div> </div> <div class="bottomlang"> <p><span>Available Languages: </span><a href="../en/mod/mod_ftp.html" title="English"> en </a></p> </div><div id="footer"> <p class="apache">Copyright 2011 The Apache Software Foundation.<br />Licensed under the <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p> <p class="menu"><a href="../mod/">Modules</a> | <a href="../mod/directives.html">Directives</a> | <a href="../faq/">FAQ</a> | <a href="../glossary.html">Glossary</a> | <a href="../sitemap.html">Sitemap</a></p></div> </body></html>