"Fossies" - the Fresh Open Source Software Archive 
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