Sophie

Sophie

distrib > Mandriva > 9.1 > ppc > by-pkgid > 2f050180e07ad13a3d8a199c58d0c542 > files > 19

proftpd-1.2.7-1mdk.ppc.rpm

<refentry id="AccessDenyMsg">
<?dbhtml filename="config_ref_AccessDenyMsg.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>AccessDenyMsg</primary></indexterm>
AccessDenyMsg
</refentrytitle>
</refmeta>
<refnamediv>
<refname>AccessDenyMsg</refname>
<refpurpose>Customise the response on failed authentication</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>AccessDenyMsg</command>
<arg choice="opt">
  <option>"message"</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
Dependent on login type
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.2 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
Normally, a 530 response message is sent to an FTP client immediately after 
a failed authentication attempt, with a standard message indicating the the
reason of failure.  In the case of a wrong password, the reason is usually
"Login incorrect."  It is this message can be customized with the AccessDenyMsg
directive. In the message argument, the magic cookie '%u' is replaced with
the username specified by the client during login.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
AccessDenyMsg &quot;Guest access denied for %u.&quot;
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="AccessGrantMsg">
<?dbhtml filename="config_ref_AccessGrantMsg.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>AccessGrantMsg</primary></indexterm>
AccessGrantMsg
</refentrytitle>
</refmeta>
<refnamediv>
<refname>AccessGrantMsg</refname>
<refpurpose>Customise the response on successful authentication</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>AccessGrantMsg</command>
<arg choice="opt">
  <option>"message"</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
Dependent on login type
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0pl5 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
Normally, a 230 response message is sent to an FTP client immediately after 
authentication, with a standard message indicating that the user has either 
logged in or that anonymous access has been granted. This message 
can be customized with the AccessGrantMsg directive. In the message argument, 
the magic cookie '%u' is replaced with the username specified by the client 
during login.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
AccessGrantMsg &quot;Guest access granted for %u.&quot;
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="Allow">
<?dbhtml filename="config_ref_Allow.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>Allow</primary></indexterm>
Allow
</refentrytitle>
</refmeta>
<refnamediv>
<refname>Allow</refname>
<refpurpose>Access control directive</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>Allow</command>
<arg choice="opt">
  <option>[&quot;from&quot;] &quot;all&quot;|&quot;none&quot;|host|network[,host|network[,...]]</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
Allow from all
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
&lt;Limit&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0pl6 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The Allow directive is used inside a &lt;Limit&gt; context to explicitly
specify which hosts and/or networks have access to the commands or
operations being limited. Allow is typically used in conjunction
with Order and Deny in order to create sophisticated (or perhaps
not-so-sophisticated) access control rules. Allow takes an optional
first argument; the keyword from. Using from is purely cosmetic. The
remaining arguments are expected to be a list of hosts and networks which
will be explicitly granted access. The magic keyword all can be used to
indicate that all hosts will explicitly be granted access (analogous to
the AllowAll directive, except with a lower priority). Additionally, the
magic keyword none can be used to indicate that no hosts or networks
will be explicitly granted access (although this does not prevent
them from implicitly being granted access). If all or none is used,
no other hosts or networks can be supplied.  Host and network addresses
can be specified by name or numeric address. For security reasons, it is
recommended that all address information be supplied numerically. Relying
solely on named addresses causes security to depend a great deal upon
DNS servers which may themselves be vulnerable to attack or spoofing.
Numeric addresses which specify an entire network should end in a
trailing period (i.e. 10.0.0. for the entire 10.0.0 subnet). Named
address which specify an entire network should begin with a trailing
period (i.e. .proftpd.net for the entire proftpd.net domain).
</para>

</refsect1>

<refsect1>
<title>See also</title>
<para>
<link linkend="Allow">Allow</link>
<link linkend="Order">Order</link>
<link linkend="Limit">Limit</link>
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<programlisting>
&lt;Limit LOGIN&gt;
Order allow,deny
Allow from 128.44.26.,128.44.26.,myhost.mydomain.edu,.trusted-domain.org
Deny from all
&lt;/Limit&gt;
</programlisting>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</refsect1>

</refentry>
<refentry id="AllowAll">
<?dbhtml filename="config_ref_AllowAll.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>AllowAll</primary></indexterm>
AllowAll
</refentrytitle>
</refmeta>
<refnamediv>
<refname>AllowAll</refname>
<refpurpose>Allow all clients </refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>AllowAll</command>
<arg choice="opt">
  <option>AllowAll</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
Default is to implicitly AllowAll, but not explicitly
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
&lt;Directory&gt;, &lt;Anonymous&gt;, &lt;Limit&gt;, .ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The AllowAll directive explicitly allows access to a &lt;Directory&gt;,
&lt;Anonymous&gt; or &lt;Limit&gt; block. Although proftpd's default
behavior is to allow access to a particular object, the default is
an implicit allow. AllowAll creates an explicit allow, overriding any
higher level denial directives.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<link linkend="DenyAll">DenyAll</link>
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="AllowChmod">
<?dbhtml filename="config_ref_AllowChmod.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_site
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>AllowChmod</primary></indexterm>
AllowChmod
</refentrytitle>
</refmeta>
<refnamediv>
<refname>AllowChmod</refname>
<refpurpose>Enable the CHMOD command (deprecated)</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>AllowChmod</command>
<arg choice="opt">
  <option>on|off</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
true
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Directory&gt;, &lt;Global&gt;, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, .ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_site
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0rc1 thru 1.2.5, removed in 1.2.6rc1
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>This directive is deprecated, please use &gt;Limit SITE_CHMOD&lt;
instead.</para>

<para>
AllowChmod allows control over whether the &quot;SITE CHMOD&quot;
command is allowed to clients.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
AllowChmod false
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="AllowFilter">
<?dbhtml filename="config_ref_AllowFilter.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>AllowFilter</primary></indexterm>
AllowFilter
</refentrytitle>
</refmeta>
<refnamediv>
<refname>AllowFilter</refname>
<refpurpose>Regular expression of command arguments to be accepted</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>AllowFilter</command>
<arg choice="opt">
  <option>regular-expression</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0pre7 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>

<para>AllowFilter allows the configuration of a regular expression
that must be matched for all command arguments sent to ProFTPD. It is
extremely useful in controlling what characters may be sent in a
command to ProFTPD, preventing some possible types of attacks against
ProFTPD. The regular expression is applied against the arguments to
the command sent by the client, so care must be taken when creating a
proper regex.  Commands that fail the regex match result in a
"Forbidden command" error being returned to the client.  If the
regular-expression argument contains whitespace, it must be enclosed
in quotes.</para>

</refsect1>

<refsect1>
<title>See also</title>
<para>
<link linkend="DenyFilter">DenyFilter</link>
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<programlisting>
# Only allow commands containing alphanumeric characters and whitespace
AllowFilter &quot;^[a-zA-Z0-9 ,]*$&quot;
</programlisting>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="AllowForeignAddress">
<?dbhtml filename="config_ref_AllowForeignAddress.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>AllowForeignAddress</primary></indexterm>
AllowForeignAddress
</refentrytitle>
</refmeta>
<refnamediv>
<refname>AllowForeignAddress</refname>
<refpurpose>Control the use of the PORT command</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>AllowForeignAddress</command>
<arg choice="opt">
  <option>on|off</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
AllowForeignAddress off
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.1.7 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
Normally, proftpd disallows clients from using the ftp PORT command with
anything other than their own address (the source address of the ftp
control connection), as well as preventing the use of PORT to specify
a low-numbered (&lt; 1024) port. In either case, the client is sent an
&quot;Invalid port&quot; error and a message is syslog'd indicating either
&quot;address mismatch&quot; or &quot;bounce attack&quot;. By enabling
this directive, proftpd will allow clients to transmit foreign data
connection addresses that do not match the client's address. This allows
such tricks as permitting a client to transfer a file between two FTP
servers without involving itself in the actual data connection. Generally
it's considered a bad idea, security-wise, to permit this sort of thing.
AllowForeignAddress only affects data connection addresses; not tcp
ports. There is no way (and no valid reason) to allow a client to use
a low-numbered port in its PORT command.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="AllowGroup">
<?dbhtml filename="config_ref_AllowGroup.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>AllowGroup</primary></indexterm>
AllowGroup
</refentrytitle>
</refmeta>
<refnamediv>
<refname>AllowGroup</refname>
<refpurpose>Group based allow rules</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>AllowGroup</command>
<arg choice="opt">
  <option>group-expression</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
&lt;Limit&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.1.1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
AllowGroup specifies a group-expression that is specifically
permitted within the context of the &lt;Limit&gt; block it is applied
to. group-expression has the same format as that used in DefaultRoot, in
that it should contain a comma separated list of groups or &quot;not&quot;
groups (by prefixing a group name with the `!' character) that are to
be allowed access to the block. The expression is parsed as a boolean
&quot;and&quot; list, meaning that ALL elements of the expression must
evaluate to logically true in order for the explicit allow to apply.
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<link linkend="DenyGroup">DenyGroup</link>,
<link linkend="DenyUser">DenyUser</link>,
<link linkend="AllowUser">AllowUser</link>
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="AllowLogSymlinks">
<?dbhtml filename="config_ref_AllowLogSymlinks.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_log
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>AllowLogSymlinks</primary></indexterm>
Allow
</refentrytitle>
</refmeta>
<refnamediv>
<refname>AllowLogSymlinks</refname>
<refpurpose>Permit logging to symlinked files</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>AllowLogSymlinks</command>
<arg choice="opt">
  <option>&quot;on&quot;|&quot;off&quot;</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
AllowLogSymlinks off
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_log
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.2rc2 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
By default, the server will the path of any configured SystemLog, any configured
TransferLogs, and any configured ExtendedLogs to see if they are symbolic
links.  If the paths are symbolic links, the server will refuse to log to that
link unless explicitly configured to do so via this directive.
</para>

<refsect2>
<title>Security note:</title>
<para>
Security note: this behaviour should not be allowed unless for
a very good reason.  By allowing the server to open symbolic links with
its root privileges, you are allowing a potential symlink attack where
the server could be tricked into overwriting arbitrary system files.
You have been warned.
</para>
</refsect2>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<programlisting>
AllowLogSymlinks on
</programlisting>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</refsect1>

</refentry>
<refentry id="AllowOverwrite">
<?dbhtml filename="config_ref_AllowOverwrite.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>AllowOverwrite</primary></indexterm>
AllowOverwrite
</refentrytitle>
</refmeta>
<refnamediv>
<refname>AllowOverwrite</refname>
<refpurpose>Enable files to be overwritten</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>AllowOverwrite</command>
<arg choice="opt">
  <option>on|off</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
AllowOverwrite off
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Directory&gt;, &lt;Global&gt;, .ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The AllowOverwrite directive permits newly transfered files to overwrite
existing files. By default, ftp clients cannot overwrite existing files.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="AllowRetrieveRestart">
<?dbhtml filename="config_ref_AllowRetrieveRestart.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>AllowRetrieveRestart</primary></indexterm>
AllowRetrieveRestart
</refentrytitle>
</refmeta>
<refnamediv>
<refname>AllowRetrieveRestart</refname>
<refpurpose>Allow clients to resume downloads</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>AllowRetrieveRestart</command>
<arg choice="opt">
  <option>on|off</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
AllowRetrieveRestart on
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Directory&gt;, &lt;Global&gt;, .ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The AllowRetrieveRestart directive permits or denies clients from
performing &quot;restart&quot; retrieve file transfers via the FTP
REST command. By default this is enabled, so that clients may resume
interrupted file transfers at a later time without losing previously
collected data.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<link linkend="AllowStoreRestart">AllowStoreRestart</link>
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="AllowStoreRestart">
<?dbhtml filename="config_ref_AllowStoreRestart.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>AllowStoreRestart</primary></indexterm>
AllowStoreRestart
</refentrytitle>
</refmeta>
<refnamediv>
<refname>AllowStoreRestart</refname>
<refpurpose>Allow clients to resume uploads</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>AllowStoreRestart</command>
<arg choice="opt">
  <option>on|off</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
AllowStoreRestart off
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Directory&gt;, &lt;Global&gt;, .ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The AllowStoreRestart directive permits or denies clients from
&quot;restarting&quot; interrupted store file transfers (those sent
from client to server). By default restarting (via the REST command) is
not permitted when sending files to the server. Care should be taken to
disallow anonymous ftp &quot;incoming&quot; transfers to be restarted,
as this will allow clients to corrupt or increase the size of previously
stored files (even if not their own).</para>

<para>
The REST (Restart STOR) command is automatically blocked when HiddenStor is
enabled, with the server returning a 501 error code to the client.
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<link linkend="AllowRetrieveRestart">AllowRetrieveRestart</link>
<link linkend="DeleteAbortedStores">DeleteAbortedStores</link>
<link linkend="HiddenStor">HiddenStor</link>
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="AllowUser">
<?dbhtml filename="config_ref_AllowUser.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>AllowUser</primary></indexterm>
AllowUser
</refentrytitle>
</refmeta>
<refnamediv>
<refname>AllowUser</refname>
<refpurpose>User based allow rules</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>AllowUser</command>
<arg choice="opt">
  <option>user-expression</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
&lt;Limit&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.1.7 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
AllowUser specifies a user-expression that is specifically 
permitted access within the context of the &lt;Limit&gt; 
block it is applied to. user-expression has a similar 
syntax as that used in AllowGroup, in that it should 
contain a comma delimited list of users or &quot;not&quot; users (by prefixing 
a user name with the `!' character) that are to be allowed access to the block. 
The expression is parsed as a boolean &quot;and&quot; list, meaning that ALL 
elements of the expression must evaluate to logically true in order to the explicit 
allow to apply.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<link linkend="DenyUser">DenyUser</link>
<link linkend="DenyGroup">DenyGroup</link>
<link linkend="AllowGroup">AllowGroup</link>
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="AnonRatio">
<?dbhtml filename="config_ref_AnonRatio.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_ratio
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>AnonRatio</primary></indexterm>
AnonRatio
</refentrytitle>
</refmeta>
<refnamediv>
<refname>AnonRatio</refname>
<refpurpose>Ratio directive</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>AnonRatio</command>
<arg choice="opt">
  <option>foo1 foo2 foo3</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None known
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
&lt;Directory&gt;, &lt;Anonymous&gt;, &lt;Limit&gt;,.ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_ratio
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
at least 1.2.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The AnonRatio directive ....</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
AnonRatio
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="AnonRequirePassword">
<?dbhtml filename="config_ref_AnonRequirePassword.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>AnonRequirePassword</primary></indexterm>
AnonRequirePassword
</refentrytitle>
</refmeta>
<refnamediv>
<refname>AnonRequirePassword</refname>
<refpurpose>Make anonymous users supply a valid password</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>AnonRequirePassword</command>
<arg choice="opt">
  <option>on|off</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
AnonRequirePassword off
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
&lt;Anonymous&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
Normally, anonymous FTP logins do not require the client to authenticate themselves 
via the normal method of a transmitted cleartext password which is hashed and 
matched against an existing system user's password. Instead, anonymous logins 
are expected to enter their e-mail address when prompted for a password. Enabling 
the AnonRequirePassword directive requires anonymous logins to enter a valid 
password which must match the password of the user that the anonymous daemon 
runs as.  However using AuthUsingAlias
authentication can be matched against the password of the login username.
This can be used to create &quot;guest&quot; accounts, which function
exactly as normal anonymous logins do (and thus present a
&quot;chrooted&quot; 
protected file system to the client), but require a valid password on the server's 
host system.</para>

</refsect1>

<refsect1>
<title>See also</title>
<para>
<link linkend="AnonymousGroup">AnonymousGroup</link>
<link linkend="AuthAliasOnly">AuthAliasOnly</link>
<link linkend="AuthUsingAlias">AuthUsingAlias</link>
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<programlisting>
Example of a &quot;guest&quot; account configuration:
&lt;Anonymous ~roger&gt;
User roger
Group other
UserAlias proftpd roger
AnonRequirePassword on
# Deny write operations to all directories, underneath root-dir
# Default is to allow, so we don't need a &lt;Limit&gt; for read operations.
&lt;Directory *&gt;
&lt;Limit WRITE&gt;
DenyAll
&lt;/Limit&gt;
&lt;/Directory&gt;
# Deny all read/write operations in incoming. Because these are command-group
# limits, we can explicitly permit certain operations which will take precedence
# over our group limit.
&lt;Directory incoming&gt;
&lt;Limit READ WRITE&gt;
DenyAll
&lt;/Limit&gt;
# The only command allowed in incoming is STOR (transfer file from client 
to server)
&lt;Limit STOR&gt;
AllowAll
&lt;/Limit&gt;
&lt;/Directory&gt;
&lt;/Anonymous&gt;
</programlisting>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="Anonymous">
<?dbhtml filename="config_ref_Anonymous.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>Anonymous</primary></indexterm>
Anonymous
</refentrytitle>
</refmeta>
<refnamediv>
<refname>Anonymous</refname>
<refpurpose>Define an anonymous server</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>Anonymous</command>
<arg choice="opt">
  <option>root-directory</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config,&lt;VirtualHost&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The Anonymous configuration block is used to create an anonymous FTP
login, and is terminated by a matching &lt;/Anonymous&gt; directive. The
root-directory parameters specifies which directory the daemon will
first chdir to, and then chroot, immediately after login. Once the chroot
operation successfully completes, higher level directories are no longer
accessible to the running child daemon (and thus the logged in user). By
default, proftpd assumes an anonymous login if the remote client attempts
to login as the currently running user; unless the current user is root,
in which case anonymous logins are not allowed regardless of the presence
of an &lt;Anonymous&gt; block. To force anonymous logins to be bound to
a user other than the current user, see the User and Group directives. In
addition, if a User or Group directive is present in an &lt;Anonymous&gt;
block, the daemon permanently switches to the specified uid/gid before
chroot()ing.  Normally, anonymous logins are not required to authenticate
with a password, but are expected to enter a valid e-mail address in place
of a normal password (which is logged). If this behavior is undesirable
for a given &lt;Anonymous&gt; configuration block, it can be overridden
via the AnonRequirePassword directive.
</para>

<para>
Note: Chroot()ed anonymous directories do not need to have supplemental
system files in them, nor do they need to have any sort of specific
directory structure. This is because proftpd is designed to acquire as
much system information as possible before the chroot, and to leave open
those files which are needed for normal operation and reside outside
the new root directory.
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<programlisting>
Example of a typical anonymous FTP configuration:
&lt;Anonymous /home/ftp&gt;
User ftp # After anonymous login, daemon runs as user ftp.
Group ftp # After anonymous login, daemon runs as group ftp.
UserAlias anonymous ftp # Client login as 'anonymous' is aliased to 'ftp'.
# Deny write operations to all directories, underneath root-dir
# Default is to allow, so we don't need a &lt;Limit&gt; for read operations.
&lt;Directory *&gt;
&lt;Limit WRITE&gt;
DenyAll
&lt;/Limit&gt;
&lt;/Directory&gt;
&lt;Directory incoming&gt;
&lt;Limit READ WRITE&gt;
DenyAll
&lt;/Limit&gt;
&lt;Limit STOR&gt;
AllowAll
&lt;/Limit&gt;
&lt;/Directory&gt;
&lt;/Anonymous&gt;
</programlisting>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="AnonymousGroup">
<?dbhtml filename="config_ref_AnonymousGroup.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>AnonymousGroup</primary></indexterm>
AnonymousGroup
</refentrytitle>
</refmeta>
<refnamediv>
<refname>AnonymousGroup</refname>
<refpurpose>Treat group members as anonymous users</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>AnonymousGroup</command>
<arg choice="opt">
  <option>group-expression</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.1.3 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The AnonymousGroup directive specifies a group-expression to which all
matching users will be considered anonymous logins. The group-expression
argument is a boolean logically ANDed list of groups to which the user
must be a member of (or non-member if the group name is prefixed with
a `!' character). For more information on group-expressions see the
DefaultRoot directive.  If the authenticating user is matched by an
AnonymousGroup directive, no valid password is required, and a special
dynamic anonymous configuration is created, with the user's home directory
as the default root directory. If a DefaultRoot directive also applies
to the user, this directory is used instead of the user's home dir.
Great care should be taken when using AnonymousGroup, as improper
configuration can open up user home directories to full read/write access
to the entire world.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<link linkend="AuthAliasOnly">AuthAliasOnly</link>
<link linkend="AuthUsingAlias">AuthUsingAlias</link>
<link linkend="AnonRequirePassword">AnonRequirePassword</link>
<link linkend="DefaultRoot">DefaultRoot</link>
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="AuthAliasOnly">
<?dbhtml filename="config_ref_AuthAliasOnly.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>AuthAliasOnly</primary></indexterm>
AuthAliasOnly
</refentrytitle>
</refmeta>
<refnamediv>
<refname>AuthAliasOnly</refname>
<refpurpose>Allow only aliased login names</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>AuthAliasOnly</command>
<arg choice="opt">
  <option>on|off</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
AuthAliasOnly off
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.1.3 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
AuthAliasOnly restricts authentication to &quot;aliased&quot; logins only;
i.e. those usernames provided by clients which are &quot;mapped&quot;
to a real userid by the UserAlias directive. Turning AuthAliasOnly `on'
in a particular context will cause proftpd to completely ignore all
non-aliased logins for the entire context. If no contexts are available
without AuthAliasOnly set to `on', proftpd rejects the client login and
sends an appropriate message to syslog.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<link linkend="AnonymousGroup">AnonymousGroup</link>
<link linkend="AuthUsingAlias">AuthUsingAlias</link>
<link linkend="AnonRequirePassword">AnonRequirePassword</link>
<link linkend="UserAlias">UserAlias</link>
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="AuthGroupFile">
<?dbhtml filename="config_ref_AuthGroupFile.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_unixpw
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>AuthGroupFile</primary></indexterm>
AuthGroupFile
</refentrytitle>
</refmeta>
<refnamediv>
<refname>AuthGroupFile</refname>
<refpurpose>Specify alternate group file</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>AuthGroupFile</command>
<arg choice="opt">
  <option>path</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_unixpw
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.0.3/1.1.1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
AuthGroupFile specifies an alternate groups file, having the same
format as the system /etc/group file, and if specified is used
during authentication and group lookups for directory/access control
operations. The path argument should be the full path to the specified
file. AuthGroupFile can be configured on a per-VirtualHost basis, so
that virtual FTP servers can each have their own authentication database
(most often used in conjunction with AuthUserFile).
</para>

<para>
Note that this file need not reside inside a chroot()ed directory
structure for Anonymous or DefaultRoot logins, as it is held open for
the duration of client connections.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<link linkend="AuthUserFile">AuthUserFile</link>
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="AuthPAM">
<?dbhtml filename="config_ref_AuthPAM.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_pam
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>AuthPAM</primary></indexterm>
AuthPAM
</refentrytitle>
</refmeta>
<refnamediv>
<refname>AuthPAM</refname>
<refpurpose>Enable/Disable PAM authentication</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>AuthPAM</command>
<arg choice="opt">
  <option>on|off</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
on
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config,&lt;VirtualHost&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_pam
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0rc1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
This directive determines whether PAM is used as an authentication 
method by ProFTPD.  Enabled by default to fit in with the design 
policy of using PAM as the primary authentication mechanism.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="AuthPAMAuthoritative">
<?dbhtml filename="config_ref_AuthPAMAuthoritative.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_unixpw
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>AuthPAMAuthoritative</primary></indexterm>
AuthPAMAuthoritative
</refentrytitle>
</refmeta>
<refnamediv>
<refname>AuthPAMAuthoritative</refname>
<refpurpose>Set whether PAM is the authoritive authentication scheme</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>AuthPAMAuthoritative</command>
<arg choice="opt">
  <option>on|off</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
off
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config,&lt;VirtualHost&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_pam
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0pre3 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
This directive allows you to control whether or not PAM is the ultimate
authority on authentication. Setting this directive to on will cause
authentication to fail if PAM authentication fails. The default setting,
off, allows other modules and directives such as AuthUserFile and friends
to authenticate users, should PAM authentication fail. If you are having
problems with PAM and using other directives like AuthUserFile, set this
directive to off.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="AuthPAMConfig">
<?dbhtml filename="config_ref_AuthPAMConfig.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_pam
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>AuthPAMConfig</primary></indexterm>
AuthPAMConfig
</refentrytitle>
</refmeta>
<refnamediv>
<refname>AuthPAMConfig</refname>
<refpurpose>Select PAM service name</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>AuthPAMConfig</command>
<arg choice="opt">
  <option>service</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
ftp
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config,&lt;VirtualHost&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_pam
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0rc1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
This directive allows you to specify the PAM service name used in
authentication. PAM allows you to specify a service name to use when
authenticating. This allows you to configure different PAM service names
to be used for different virtual hosts. The directive was renamed from
PAMConfig post 1.2.0 pre10.
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<programlisting>
# Virtual host foobar authenticates differently than the rest

AuthPAMConfig foobar

# This assumes, that you have a PAM service named foobar
# configured in your /etc/pam.conf file or /etc/pam.d directory. 
</programlisting>
</para>
</refsect1>

</refentry>
<refentry id="AuthUserFile">
<?dbhtml filename="config_ref_AuthUserFile.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_unixpw
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>AuthUserFile</primary></indexterm>
AuthUserFile
</refentrytitle>
</refmeta>
<refnamediv>
<refname>AuthUserFile</refname>
<refpurpose>Specify alternate passwd file</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>AuthUserFile</command>
<arg choice="opt">
  <option>path</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config,&lt;VirtualHost&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_unixpw
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.0.3/1.1.1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
AuthUserFile specifies an alternate passwd file, having the same
format as the system /etc/passwd file, and if specified is used
during authentication and user lookups for directory/access control
operations. The path argument should be the full path to the specified
file. AuthUserFile can be configured on a per-VirtualHost basis, so
that virtual FTP servers can each have their own authentication database
(most often used in conjunction with AuthGroupFile).
</para>

<para>
Note that this file need not reside inside a chroot()ed directory
structure for Anonymous or DefaultRoot logins, as it is held open for
the duration of client connections.
</para>

</refsect1>

<refsect1>
<title>See also</title>
<para>
<link linkend="AuthGroupFile">AuthGroupFile</link>
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="AuthUsingAlias">
<?dbhtml filename="config_ref_AuthUsingAlias.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>AuthUsingAlias</primary></indexterm>
AuthUsingAlias
</refentrytitle>
</refmeta>
<refnamediv>
<refname>AuthUsingAlias</refname>
<refpurpose>Authenticate via Alias-name instead of mapped username</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>AuthUsingAlias</command>
<arg choice="opt">
  <option>on|off</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
AuthUsingAlias off
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
&lt;Anonymous&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0pre9 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>

<para>
AuthUsingAlias disables the resolving of mapped usernames for
authentication purposes. For example, if you have mapped the username
anonymous to the "real" user ftp, the password gets checked against the
user "anonymous". When AuthUsingAlias is disabled, the checked username
would be "ftp".</para>

</refsect1>

<refsect1>
<title>See also</title>
<para>
<link linkend="AnonymousGroup">AnonymousGroup</link>
<link linkend="AuthAliasOnly">AuthAliasOnly</link>
<link linkend="AnonRequirePassword">AnonRequirePassword</link>
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<programlisting>
An example of an Anonymous configuration using
AuthUsingAlias
# Basic Read-Only Anonymous Configuration.
&lt;Anonymous /home/ftp&gt;
UserAlias             anonymous  nobody
UserAlias             ftp        nobody
AuthAliasOnly         on
&lt;Limit WRITE&gt;
DenyAll
&lt;/Limit&gt;
&lt;/Anonymous&gt;
# Give Full Read-Write Anonymous Access to certain users
&lt;Anonymous /home/ftp&gt;
AnonRequirePassword   on
AuthAliasOnly         on
AuthUsingAlias        on
# The list of authorized users.
# user/pass lookup is for each user, not password entry
# of server uid ('nobody' in this example).
UserAlias             fred       nobody
UserAlias             joe        nobody
&lt;Limit ALL&gt;
AllowAll
&lt;/Limit&gt;
&lt;/Anonymous&gt;
</programlisting>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="Bind">
<?dbhtml filename="config_ref_Bind.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>Bind</primary></indexterm>
Bind
</refentrytitle>
</refmeta>
<refnamediv>
<refname>Bind</refname>
<refpurpose>Bind the server or Virtualhost to a specific IP address</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>Bind</command>
<arg choice="opt">
  <option>IP address</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.1.6 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The Bind directive allows additional IP addresses to be bound to a main
or VirtualHost configuration. Multiple Bind directives can be used to
bind multiple addresses. The address argument should be either a fully
qualified domain name or a numeric dotted-quad IP address. Incoming
connections destined to an additional address added by Bind are serviced
by the context containing the directive. Additionally, if SocketBindTight
is set to on, a specific listen connection is created for each additional
address.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see
<link linkend="Class">Class</link>
-->
</para>
</refsect1>
 
</refentry>
<refentry id="ByteRatioErrMsg">
<?dbhtml filename="config_ref_ByteRatioErrMsg.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_ratio
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>ByteRatioErrMsg</primary></indexterm>
ByteRatioErrMsg
</refentrytitle>
</refmeta>
<refnamediv>
<refname>ByteRatioErrMsg</refname>
<refpurpose>Ratio directive</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>ByteRatioErrMsg</command>
<arg choice="opt">
  <option>foo1 foo2 foo3</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None known
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
&lt;Directory&gt;, &lt;Anonymous&gt;, &lt;Limit&gt;,.ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_ratio
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
at least 1.2.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The ByteRatioErrMsg directive ....
Example:
ByteRatioErrMsg</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="CDPath">
<?dbhtml filename="config_ref_CDPath.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>CDPath</primary></indexterm>
CDPath
</refentrytitle>
</refmeta>
<refnamediv>
<refname>CDPath</refname>
<refpurpose>Sets "search paths" for the cd command</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>CDPath</command>
<arg choice="opt">
  <option>directory</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0pre2 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
Adds an entry to a search path that is used when changing directories. For 
example: 
CDPath    /home/public
CDPath    /var/devel
This allows a user to cd into any directory directly under /home/public or /var/devel, 
provided they have the appropriate rights. So, if /home/public/proftpd exists, 
cd proftpd will bring the user to that directory, regardless of where 
they currently are in the directory tree.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="Class">
<?dbhtml filename="config_ref_Class.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>Class</primary></indexterm>
Class
</refentrytitle>
</refmeta>
<refnamediv>
<refname>Class</refname>
<refpurpose>Definition statements for class based tracking</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>Class</command>
<arg choice="opt">
  <option>"name" limit|regex|ip value</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0pre9 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
Controls class based access. Class base access allows each connecting IP to 
be classified into a separate class. Each class has its own maximum number
of connections. limit sets the maximum number of connections (default is 100)
for that class name, regex sets a hostname regex (POSIX) for
inclusion in the class and ip sets an IP/netmask based inclusion.
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>

<literallayout>
Classes on
Class local limit 100
Class default limit 10
Class local regex .*foo.com
Class local ip 172.16.1.0/24
</literallayout>

<para>
This creates two classes, local and default, with local being everything in 
*.foo.com and 172.16.1.* combined.
</para>

</refsect1>
</refentry>

<refentry id="Classes">
<?dbhtml filename="config_ref_Classes.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>Classes</primary></indexterm>
Classes
</refentrytitle>
</refmeta>
<refnamediv>
<refname>Classes</refname>
<refpurpose>Enable Class based connection tracking</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>Classes</command>
<arg choice="opt">
  <option>on|off</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
Off
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0pre9 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
Controls class based access. Enables class based access control.
see: Class</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
For examples, see 
<link linkend="Class">Class</link>
</para>
</refsect1>

</refentry>
<refentry id="CommandBufferSize">
<?dbhtml filename="config_ref_CommandBufferSize.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>CommandBufferSize</primary></indexterm>
CommandBufferSize
</refentrytitle>
</refmeta>
<refnamediv>
<refname>CommandBufferSize</refname>
<refpurpose>Limit the maximum command length</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>CommandBufferSize</command>
<arg choice="opt">
  <option>size</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0pre7 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The CommandBufferSize directive controls the maximum command length permitted 
to be sent to the server. This allows you to effectively control what the longest 
command the server may accept it, and can help protect the server from various 
Denial of Service or resource-consumption attacks. </para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="CwdRatioMsg">
<?dbhtml filename="config_ref_CwdRatioMsg.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_ratio
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>CwdRatioMsg</primary></indexterm>
CwdRatioMsg
</refentrytitle>
</refmeta>
<refnamediv>
<refname>CwdRatioMsg</refname>
<refpurpose>Ratio directive</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>CwdRatioMsg</command>
<arg choice="opt">
  <option>foo1 foo2 foo3</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None known
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
&lt;Directory&gt;, &lt;Anonymous&gt;, &lt;Limit&gt;,.ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_ratio
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
at least 1.2.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The CwdRatioMsg directive ....
Example:
CwdRatioMsg</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="DefaultChdir">
<?dbhtml filename="config_ref_DefaultChdir.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_auth
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>DefaultChdir</primary></indexterm>
DefaultChdir
</refentrytitle>
</refmeta>
<refnamediv>
<refname>DefaultChdir</refname>
<refpurpose>Set starting directory for FTP sessions</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>DefaultChdir</command>
<arg choice="opt">
  <option>directory [group-expression]</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
~
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_auth
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0pre2 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
Determines the directory a user is placed in after logging in.
By default, the user is put in their home directory.  The specified
directory can be relative to the user's home directory.
NOTE: if the specified directory is not available
the user will not be able to log in.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<link linkend="DefaultRoot">DefaultRoot</link>
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="DefaultQuota">
<?dbhtml filename="config_ref_DefaultQuota.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_quota
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>DefaultQuota</primary></indexterm>
DefaultQuota
</refentrytitle>
</refmeta>
<refnamediv>
<refname>DefaultQuota</refname>
<refpurpose>Sets the default quota</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>DefaultQuota</command>
<arg choice="opt">
  <option>value in bytes</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
0
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server, &lt;VirtualHost&gt;, &lt;Anonymous&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_quota
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
at least 1.2.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The DefaultQuota directive sets the default quota in bytes, this
value is used if the .quota file does not exist.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<link linkend="Quotas">Quotas</link>
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<programlisting>
#
# Set default to 1kb
#
DefaultQuota 1024 
</programlisting>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="DefaultRoot">
<?dbhtml filename="config_ref_DefaultRoot.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_auth
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>DefaultRoot</primary></indexterm>
DefaultRoot
</refentrytitle>
</refmeta>
<refnamediv>
<refname>DefaultRoot</refname>
<refpurpose>Sets default chroot directory</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>DefaultRoot</command>
<arg choice="opt">
  <option>directory [group-expression]</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
DefaultRoot /
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_auth
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0pl7 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The DefaultRoot directive controls the default root directory assigned
to a user upon login. If DefaultRoot is set to a directory other than
&quot;/&quot;, a chroot operation is performed immediately after a client
authenticates. This can be used to effectively isolate the client from
a portion of the host system filespace. The specified root directory
must begin with a / or can be the magic character '~'; meaning that the
client is chroot jailed into their home directory.
</para>

<para>
If the DefaultRoot directive specifies a directory which disallows
access to the logged-in user's home directory, the user's current
working directory after login is set to the DefaultRoot instead of their
normal home directory. DefaultRoot cannot be used in &lt;Anonymous&gt;
configuration blocks, as the &lt;Anonymous&gt; directive explicitly
contains a root directory used for Anonymous logins.  The special
character '~' is replaced with the authenticating user's home directory
immediately after login. Note that the default root may be a subdirectory
of the home directory, such as &quot;~/anon-ftp&quot;.
</para>

<para>
The optional group-expression argument can be used to restrict the
DefaultRoot directive to a unix group, groups or subset of groups. The
expression takes the format: [!]group-name1[,[!]group-name2[,...]]. The
expression is parsed in a logical boolean AND fashion, such that each
member of the expression must evaluate to logically TRUE in order for
the DefaultRoot directive to apply. The special character '!' is used
to negate group membership.
</para>

<para>
Care should be taken when using DefaultRoot. Chroot &quot;jails&quot;
should not be used as methods for implementing general system security
as there are potentially ways that a user can &quot;escape&quot; the jail.
</para>

</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<programlisting>
Example of a DefaultRoot configuration:
ServerName &quot;A test ProFTPD Server&quot;
ServerType inetd
User ftp
Group ftp
#
# This causes proftpd to perform a chroot into the authenticating user's directory 
immediately after login.
# Once this happens, the user is unable to &quot;see&quot; higher level directories.
# Because a group-expression is included, only users who are a member of
# the group 'users' and NOT a member of 'staff' will have their default
# root directory set to '~'.
DefaultRoot ~ users,!staff
... 
</programlisting>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="DefaultServer">
<?dbhtml filename="config_ref_DefaultServer.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>DefaultServer</primary></indexterm>
DefaultServer
</refentrytitle>
</refmeta>
<refnamediv>
<refname>DefaultServer</refname>
<refpurpose>Set the default server</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>DefaultServer</command>
<arg choice="opt">
  <option>on|off</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
DefaultServer off
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config,&lt;VirtualHost&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0pl6 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The DefaultServer directive controls which server configuration is used as 
the default when an incoming connection is destined for an IP address which 
is neither the host's primary IP address or one of the addresses specified in 
a &lt;VirtualHost&gt; configuration block. Normally such 
&quot;unknown&quot; connections are issued a &quot;no server available to service 
your request&quot; message and disconnected. When DefaultServer is turned on 
for either the primary server configuration or a virtual server, all unknown 
destination connections are serviced by the default server. Only a single server 
configuration can be set to default.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="DefaultTransferMode">
<?dbhtml filename="config_ref_DefaultTransferMode.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>DefaultTransferMode</primary></indexterm>
DefaultTransferMode
</refentrytitle>
</refmeta>
<refnamediv>
<refname>DefaultTransferMode</refname>
<refpurpose>Set the default method of data transfer</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>DefaultTransferMode</command>
<arg choice="opt">
  <option>ascii|binary</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
DefaultTransferMode ascii
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0pre9 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
DefaultTransferMode sets the default transfer mode of the server.  By default, 
carriage-return/linefeed translation will be performed (ASCII mode).</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="DeferWelcome">
<?dbhtml filename="config_ref_DeferWelcome.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>DeferWelcome</primary></indexterm>
DeferWelcome
</refentrytitle>
</refmeta>
<refnamediv>
<refname>DeferWelcome</refname>
<refpurpose>Don't show welcome message until user has authenticated</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>DeferWelcome</command>
<arg choice="opt">
  <option>DeferWelcome on|off</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
DeferWelcome off
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The DeferWelcome directive configures a master or 
virtual server to delay transmitting the 
ServerName and address to new connections, 
until a client has successfully authenticated. If enabled, the initial welcome 
message will be exceedingly generic and will not give away any type of information 
about the host that the daemon is actively running on. This can be used by security-conscious 
administrators to limit the amount of &quot;probing&quot; possible from non-trusted 
networks/hosts.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<link linkend="ServerIdent">ServerIdent</link>
<link linkend="ServerName">ServerName</link>
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="Define">
<?dbhtml filename="config_ref_Define.html">
<refentryinfo>
  <keywordset>
    <keyword>mod_core</keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>Define</primary></indexterm>
Define
</refentrytitle>
</refmeta>
<refnamediv>
<refname>Define</refname>
<refpurpose>Initialises Defines for IfDefine</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>Define</command>
<arg choice="opt">
  <option>parameter-name</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>
 
<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
none
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
any context
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.6rc1 and later
</para> </listitem>
</varlistentry>
</variablelist>

<refsect1>
<title>Description</title>
<para>
This directive is used to initialise defines for use in conjunction with
the IfDefine directive
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<link linkend="IfDefine">IfDefine</link>, 
<link linkend="IfModule">IfModule</link>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>

<literallayout>
IfDefine LoadLimiting
IfDefine HighPerformanceSetup
</literallayout>

</refsect1>
</refentry>

<refentry id="DeleteAbortedStores">
<?dbhtml filename="config_ref_DeleteAbortedStores.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>DeleteAbortedStores</primary></indexterm>
DeleteAbortedStores
</refentrytitle>
</refmeta>
<refnamediv>
<refname>DeleteAbortedStores</refname>
<refpurpose>Enable automatic deletion of partially uploaded files</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>DeleteAbortedStores</command>
<arg choice="opt">
  <option>DeleteAbortedStores on|off</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
off
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server, &lt;VirtualHost&gt;, &lt;Directory&gt;, &lt;Anonymous&gt;, &lt;Global&gt;, .ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0rc2 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The DeleteAbortedStores directive controls whether ProFTPD
deletes partially uploaded files if the transfer is stopped via
the ABOR command rather than a connection failure.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<link linkend="HiddenStor">HiddenStor</link>
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="Deny">
<?dbhtml filename="config_ref_Deny.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>Deny</primary></indexterm>
Deny
</refentrytitle>
</refmeta>
<refnamediv>
<refname>Deny</refname>
<refpurpose>Access control directive</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>Deny</command>
<arg choice="opt">
  <option>Deny [&quot;from&quot;] &quot;all&quot;|&quot;none&quot;|host|network[,host|network[,...]]</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
&lt;Limit&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0pl6 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The Deny directive is used to create a list of hosts and/or networks which 
will explicitly be denied access to a given &lt;Limit&gt; context block. The magic keywords all 
and none can be used to indicate that all hosts are 
denied access, or that no hosts are explicitly denied (respectively). For more 
information on the syntax and usage of Deny see: Allow 
and Order.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<link linkend="Allow">Allow</link>
<link linkend="Order">Order</link>
<link linkend="Limit">Limit</link>
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="DenyAll">
<?dbhtml filename="config_ref_DenyAll.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>DenyAll</primary></indexterm>
DenyAll
</refentrytitle>
</refmeta>
<refnamediv>
<refname>DenyAll</refname>
<refpurpose>Deny all clients</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>DenyAll</command>
<arg choice="opt">
  <option>DenyAll</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
&lt;Directory&gt;, &lt;Anonymous&gt;, &lt;Limit&gt;, .ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The DenyAll directive is analogous to a combination of &quot;order
deny,allow &lt;cr&gt; deny from all&quot;, with the exception that it
has a higher precedence when parsed. It is provided as a convenient
method of completely denying access to a directory, anonymous ftp or
limit block. Because of its precedence, it should not be intermixed with
normal  Order/Deny directives. The DenyAll directive can be overridden
at a lower level directory by using AllowAll. DenyAll and AllowAll are
mutually exclusive.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<link linkend="AllowAll">AllowAll</link>
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="DenyFilter">
<?dbhtml filename="config_ref_DenyFilter.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>DenyFilter</primary></indexterm>
DenyFilter
</refentrytitle>
</refmeta>
<refnamediv>
<refname>DenyFilter</refname>
<refpurpose>Regular expression of command arguments to be blocked</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>DenyFilter</command>
<arg choice="opt">
  <option>DenyFilter regular-expression</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0pre7 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
Similar to AllowFilter, DenyFilter specifies a regular expression
which must not match any of the command arguments. If the regex does
match, a "Forbidden command" error is returned to the client. This can
be especially useful for forbidding certain command argument
combinations from ever reaching ProFTPD.
</para>

<para>
<emphasis>Notes:</emphasis> The 'PASV' command cannot be blocked using
this directive.
</para>

</refsect1>

<refsect1>
<title>See also</title>
<para>
AllowFilter
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<programlisting>
# We don't want to allow any commands with % being sent to the server
DenyFilter &quot;%&quot;
</programlisting>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="DenyGroup">
<?dbhtml filename="config_ref_DenyGroup.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>DenyGroup</primary></indexterm>
DenyGroup
</refentrytitle>
</refmeta>
<refnamediv>
<refname>DenyGroup</refname>
<refpurpose>Group based deny rules</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>DenyGroup</command>
<arg choice="opt">
  <option>DenyGroup group-expression</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
&lt;Limit&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.1.1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
DenyGroup specifies a group-expression that is specifically 
denied within the context of the 
&lt;Limit&gt; block it is applied to. group-expression 
has the same format as that used in DefaultRoot, 
in that it should contain a comma separated list of groups or &quot;not&quot; 
groups (by prefixing a group name with the `!' character) that are to be denied 
access to the block. The expression is parsed as a boolean &quot;and&quot; list, 
meaning that ALL elements of the expression must evaluate to logically true 
in order for the explicit deny to apply.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<link linkend="DenyUser">DenyUser</link>,
<link linkend="AllowUser">AllowUser</link>
<link linkend="AllowGroup">AllowGroup</link>
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="DenyUser">
<?dbhtml filename="config_ref_DenyUser.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>DenyUser</primary></indexterm>
DenyUser
</refentrytitle>
</refmeta>
<refnamediv>
<refname>DenyUser</refname>
<refpurpose>User based deny rules</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>DenyUser</command>
<arg choice="opt">
  <option>DenyUser user-expression</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
&lt;Limit&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.1.7 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
DenyUser specifies a user-expression that is specifically denied within
the context of the &lt;Limit&gt; block it is applied to.  user-expression
is a comma delimited list of users or &quot;not&quot; users (by prefixing
a user name with the `!' character). The expression is parsed as a boolean
&quot;and&quot; list, meaning that all elements of the expression must
evaluate to logically true in order for the explicit deny to apply.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<link linkend="DenyGroup">DenyGroup</link>,
<link linkend="AllowUser">AllowUser</link>
<link linkend="AllowGroup">AllowGroup</link>
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="DirFakeGroup">
<?dbhtml filename="config_ref_DirFakeGroup.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_ls
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>DirFakeGroup</primary></indexterm>
DirFakeGroup
</refentrytitle>
</refmeta>
<refnamediv>
<refname>DirFakeGroup</refname>
<refpurpose>Hide real file/directory group</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>DirFakeGroup</command>
<arg choice="opt">
  <option>DirFakeGroup On|Off [groupname]</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
DirFakeGroup Off
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_ls
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.1.5
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
DirFakeGroup can be used to hide the true group of files (including
directories, fifos, etc.) in a directory listing. If simply turned On,
DirFakeGroup will display all files as being owned by group 'ftp'.
Optionally, the groupname argument can be used to specify a specific group
other than 'ftp'. "~" can be used as the argument in order to display the
primary group name of the current user.
</para>
<para>
Both DirFakeGroup and DirFakeUser are completely cosmetic; the groupname or
username specified don't need to exist on the system, and neither directive
affects permissions, real ownership or access control in any way.
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<link linkend="DirFakeUser">DirFakeUser</link>
<link linkend="DirFakeMode">DirFakeMode</link>
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="DirFakeMode">
<?dbhtml filename="config_ref_DirFakeMode.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_ls
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>DirFakeMode</primary></indexterm>
DirFakeMode
</refentrytitle>
</refmeta>
<refnamediv>
<refname>DirFakeMode</refname>
<refpurpose>Hide real file/directory permissions</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>DirFakeMode</command>
<arg choice="opt">
  <option>DirFakeMode octal-mode</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Directory&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_ls
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.1.6
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The DirFakeMode directive configures a mode (or permissions) which will be 
displayed for ALL files and directories in directory listings. For each subset 
of permissions (user, group, other), the "execute" permission for directories 
is added in listings if the "read" permission is specified by this directive. 

As with DirFakeUser, and DirFakeGroup, the "fake" permissions shown in
directory listings are cosmetic only, they do not affect real permissions or
access control in any way.
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<link linkend="DirFakeUser">DirFakeUser</link>
<link linkend="DirFakeGroup">DirFakeGroup</link>
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<programlisting>
  DirFakeMode 0640

Will result in:

  -rw-r----- ... arbitrary.file
  drwxr-x--- ... arbitrary.directory
</programlisting>
</para>
</refsect1>

</refentry>
<refentry id="DirFakeUser">
<?dbhtml filename="config_ref_DirFakeUser.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_ls
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>DirFakeUser</primary></indexterm>
DirFakeUser
</refentrytitle>
</refmeta>
<refnamediv>
<refname>DirFakeUser</refname>
<refpurpose>Hide real file/directory owner</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>DirFakeUser</command>
<arg choice="opt">
  <option>DirFakeUser On|Off [username]</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
DirFakeUser Off
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_ls
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.1.5
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
DirFakeUser can be used to hide the true user owners of files (including
directories, fifos, etc.) in a directory listing. If simply turned On,
DirFakeUser will display all files as being owned by user 'ftp'. Optionally,
the username argument can be used to specify a specific user other than
'ftp'. "~" can be used as the argument in order to display the current
user's username.
</para>
<para>
Both DirFakeGroup and DirFakeUser are completely cosmetic; the groupname or
username specified don't need to exist on the system, and neither directive
affects permissions, real ownership or access control in any way.
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<link linkend="DirFakeGroup">DirFakeGroup</link>
<link linkend="DirFakeMode">DirFakeMode</link>
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="Directory">
<?dbhtml filename="config_ref_Directory.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>Directory</primary></indexterm>
Directory
</refentrytitle>
</refmeta>
<refnamediv>
<refname>Directory</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>Directory</command>
<arg choice="opt">
  <option>&lt;Directory pathname&gt;</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
This directive creates a block of configuration directives which applies only 
to the specified directory and its sub-directories. The block is ended with 
&lt;/Directory&gt;. Per-directory configuration is enabled during run-time with 
a &quot;closest&quot; match algorithm, meaning that the &lt;Directory&gt; directive 
with the closest matching path to the actual pathname of the file or directory 
in question is used. Per-directory configuration is inherited by all sub-directories 
until a closer matching &lt;Directory&gt; is encountered, at which time the 
original per-directory configuration is replaced with the closer match. Note 
that this does not apply to &lt;Limit&gt; &lt;/Limit&gt; blocks, which are 
inherited by all sub-directories until a &lt;Limit&gt; block is reached in a 
closer match.</para>

<para>

A trailing slash and wildcard (&quot;/*&quot;) can be appended to the
directory, specifying that the configuration block applies only to the contents
(and sub-contents), not to the actual directory itself. Such wildcard matches
always take precedence over non-wildcard &lt;Directory&gt; configuration
blocks. &lt;Directory&gt; blocks cannot be nested (they are automatically
nested at run-time based on their pathnames). Pathnames must always be absolute
(except inside &lt;Anonymous&gt;), and should not reference symbolic links.
Pathnames inside an &lt;Anonymous&gt; block can be relative, indicating that
they are based on the anonymous root directory.</para>

<para>
[Notes for ProFTPD 1.1.3 and later only]
Pathnames that begin with the special character '~' and do not specify 
a username immediately after ~ are put into a special deferred mode. 
When in deferred mode, the directory context is not hashed and sorted into the 
configuration tree at boot time, but rather this hashing is deferred until a 
user authenticates, at which time the '~' character is replaced with the user's 
home directory. This allows a global &lt;Directory&gt; block which applies to 
all user's home directories, or sub-directories thereof.
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<link linkend="Limit">Limit</link>
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<programlisting>
#Default usage of the directory directive
&lt;Directory /users/robroy/private&gt;
  HideNoAccess
&lt;/Directory&gt;

#Example with username-expanding
&lt;Directory ~/anon-ftp&gt;
  &lt;Limit WRITE&gt;
    DenyAll
  &lt;/Limit&gt;
&lt;/Directory&gt;
</programlisting>
</para>
</refsect1>

</refentry>
<refentry id="DisplayConnect">
<?dbhtml filename="config_ref_DisplayConnect.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>DisplayConnect</primary></indexterm>
DisplayConnect
</refentrytitle>
</refmeta>
<refnamediv>
<refname>DisplayConnect</refname>
<refpurpose>Sets connect banner file</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>DisplayConnect</command>
<arg choice="opt">
  <option>DisplayConnect filename</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0pre2 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The DisplayConnect directive configures an ASCII text filename which
will be displayed to the user when they initially connect but before they
login. The filename can be either relative or absolute. In the case of a
relative filename, the file is searched for starting in the home directory
of the user the server is running as. As this can lead confusion, absolute
pathnames are suggested. If the file cannot be found or accessed, no
error occurs and nothing is logged or displayed to the client.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="DisplayFirstChdir">
<?dbhtml filename="config_ref_DisplayFirstChdir.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>DisplayFirstChdir</primary></indexterm>
DisplayFirstChdir
</refentrytitle>
</refmeta>
<refnamediv>
<refname>DisplayFirstChdir</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>DisplayFirstChdir</command>
<arg choice="opt">
  <option>DisplayFirstChdir filename</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Directory&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0 and later, magic cookies only in 0.99.0pl10 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The DisplayFirstChdir directive configures an ASCII text filename which will
be displayed to the user the first time they change into a directory (via
CWD)  per a given session. The file will also be displayed if proftpd detects
that its last modification time has changed since the previous CWD into a
given directory. If the filename is relative, it is looked for in the new
directory that the user has changed into. Note that for anonymous ftp logins
(see &lt;Anonymous&gt;), the file must reside inside the chroot()ed file
system space. If the file cannot be found or accessed, no error occurs and
nothing is logged or displayed to the client.
</para>
<para>
DisplayFirstChdir, DisplayConnect, DisplayLogin and DisplayQuit support the
following &quot;magic cookies&quot; (only in 0.99.0pl10 and later), which are
replaced with their respective strings before being displayed to the user.
</para>
<programlisting>
%T	Current Time

%F	Available space on file system

%C	Current working directory

%R	Remote host name

%L	Local host name

%u	Username reported by ident protocol

%U	Username originally used in login

%M	Max number of connections

%N	Current number of connections

%E	Server admin's e-mail address

<!-- This doesn't work?  It appears in mod_core.c 
%V	Name of virtual host (if any)

--> 
%x	The name of the user's class

%y	Current number of connections from the user's class

%z	Max number of connections from the user's class
</programlisting>
<para>
NOTE: not all of these may have a rational value, depending on the context in
which they're used (e.g., %u if ident lookups are off).
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<link linkend="DisplayConnect">DisplayConnect</link>
<link linkend="DisplayLogin">DisplayLogin</link>
<link linkend="DisplayQuit">DisplayQuit</link>
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="DisplayGoAway">
<?dbhtml filename="config_ref_DisplayGoAway.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>DisplayGoAway</primary></indexterm>
DisplayGoAway
</refentrytitle>
</refmeta>
<refnamediv>
<refname>DisplayGoAway</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>DisplayGoAway</command>
<arg choice="opt">
  <option>DisplayGoAway filename</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0pre8 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The DisplayGoAway directive specifies an ASCII text filename which will be 
displayed to the user if the class they're a member of has too many users logged
in and their login request has been denied.
DisplayGoAway supports the same &quot;magic cookies&quot; as DisplayFirstChdir.
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
DisplayFirstChdir
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="DisplayLogin">
<?dbhtml filename="config_ref_DisplayLogin.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>DisplayLogin</primary></indexterm>
DisplayLogin
</refentrytitle>
</refmeta>
<refnamediv>
<refname>DisplayLogin</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>DisplayLogin</command>
<arg choice="opt">
  <option>DisplayLogin filename</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The DisplayLogin directive configures an ASCII text filename which will be 
displayed to the user when they initially login. The filename can be either 
relative or absolute. In the case of a relative filename, the file is searched 
for in the initial directory a user is placed in immediately after login (home 
directory for unix user logins, anonymous-root directory for anonymous logins). Note: that for jailed
logins, the file must reside inside the chroot()ed file system space. If 
the file cannot be found or accessed, no error occurs and nothing is logged 
or displayed to the client.
DisplayLogin supports the same &quot;magic cookies&quot; as DisplayFirstChdir.
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="DisplayQuit">
<?dbhtml filename="config_ref_DisplayQuit.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>DisplayQuit</primary></indexterm>
DisplayQuit
</refentrytitle>
</refmeta>
<refnamediv>
<refname>DisplayQuit</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>DisplayQuit</command>
<arg choice="opt">
  <option>DisplayQuit filename</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0pre8 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
DisplayQuit configures an ASCII text filename which will be displayed to the 
user when they quit. The filename can be either relative or absolute. In the 
case of a relative filename, the file is searched for in current directory a 
user is in when they logout -- for this reason, a absolute filename is usually 
preferable.
NOTE: for jailed logins, the file must reside inside the 
chroot()ed file system space. If the file cannot be found or accessed, no error 
occurs and nothing is logged or displayed to the client.
DisplayQuit supports the &quot;magic cookies&quot; listed under DisplayFirstChdir.
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="DisplayReadme">
<?dbhtml filename="config_ref_DisplayReadme.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_readme
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>DisplayReadme</primary></indexterm>
DisplayReadme
</refentrytitle>
</refmeta>
<refnamediv>
<refname>DisplayReadme</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>DisplayReadme</command>
<arg choice="opt">
  <option>DisplayReadme filename or pattern</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_readme
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0pre8 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
Module: mod_readme
The DisplayReadme directive notifies the user of the last change date of the 
specified file or pattern. Only a single DisplayReadme directive is allowed per configuration 
scope. 
DisplayReadme README
Will result in:
Please read the file README it was last modified on Sun Oct 17 10:36:14 
1999 - 0 days ago 
Being displayed to the user on a cwd. 
DisplayReadmePattern README*
Will result in:
Please read the file README
it was last modified on Tue Jan 25 04:47:48 2000 - 0 days ago
Please read the file README.first
it was last modified on Tue Jan 25 04:48:04 2000 - 0 days ago
Being displayed to the user on a cwd. </para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="ExtendedLog">
<?dbhtml filename="config_ref_ExtendedLog.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_log
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>ExtendedLog</primary></indexterm>
ExtendedLog
</refentrytitle>
</refmeta>
<refnamediv>
<refname>ExtendedLog</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>ExtendedLog</command>
<arg choice="opt">
  <option>filename [[command-classes] format-nickname]</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Anonymous&gt; &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_log
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.1.6pl1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The ExtendedLog directive allows customizable logfiles to be generated, either 
globally or per VirtualHost. The filename 
argument must contain an absolute pathname to a logfile which will be appended 
to when proftpd starts; the pathname should not be to a file in a nonexistent
directory, to a world-writeable directory, or be a symbolic link (unless
AllowLogSymlinks is set to on).  Multiple logfiles (potentially with different
command classes and formats) can be created.  Optionally, the command-classes
argument can be used to control which types of commands are logged. If not
command classes are specified, proftpd logs all commands by default (passwords
are hidden).  command-classes is a comma delimited (no whitespace!) list of
which commands to log.</para>

<para>The following are valid classes:
NONE
No commands
AUTH
Authentication commands (USER, PASS)
INFO
Informational commands (PWD, SYST, etc)
DIRS
Directory commands (LIST, CWD, MKD, etc)
READ
File reading (RETR)
WRITE
File/directory writing or creation
MISC
Miscellaneous commands (SITE, etc)
ALL
All commands (default)
</para>

<para>If a format-nickname argument is supplied, ExtendedLog 
will use the predefined logformat (created by LogFormat). 
Otherwise, the default format of &quot;%h %l %u %t \&quot;%r\&quot; %s %b&quot; 
is used.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<link linkend="AllowLogSymlinks">AllowLogSymlinks</link>,
<link linkend="LogFormat">LogFormat</link>,
<link linkend="TransferLog">TransferLog</link>
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>For example, to log all read and write operations to /var/log/ftp.log (using 
the default format), you could:</para>
<programlisting>
ExtendedLog /var/log/ftp.log read,write
</programlisting>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="FileRatioErrMsg">
<?dbhtml filename="config_ref_FileRatioErrMsg.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_ratio
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>FileRatioErrMsg</primary></indexterm>
FileRatioErrMsg
</refentrytitle>
</refmeta>
<refnamediv>
<refname>FileRatioErrMsg</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>FileRatioErrMsg</command>
<arg choice="opt">
  <option>FileRatioErrMsg foo1 foo2 foo3</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None known
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
&lt;Directory&gt;, &lt;Anonymous&gt;, &lt;Limit&gt;,.ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_ratio
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
at least 1.2.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The FileRatioErrMsg directive ....
Example:
FileRatioErrMsg</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="FooBarDirective">
<?dbhtml filename="config_ref_FooBarDirective.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sample
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>FooBarDirective</primary></indexterm>
FooBarDirective
</refentrytitle>
</refmeta>
<refnamediv>
<refname>FooBarDirective</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>FooBarDirective</command>
<arg choice="opt">
  <option>FooBarDirective thingy</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
none
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Anonymous&gt;, &lt;Limit&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sample
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
at least 1.2.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
FooBarDirective is a dummy directive to be used as a coding
example only.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="Global">
<?dbhtml filename="config_ref_Global.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>Global</primary></indexterm>
Global
</refentrytitle>
</refmeta>
<refnamediv>
<refname>Global</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>Global</command>
<arg choice="opt">
  <option>&lt;Global&gt;</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.1.6 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The Global configuration block is used to create a set of configuration directives 
which is applied universally to both the main server configuration and all VirtualHost 
configurations. Most, but not all other directives can be used 
inside a Global block.
In addition, multiple &lt;Global&gt; blocks can be created. At runtime, all 
Global blocks are merged together and finally into each server's configuration. 
Global blocks are terminated by a matching &lt;/Global&gt; directive.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="Group">
<?dbhtml filename="config_ref_Group.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>Group</primary></indexterm>
Group
</refentrytitle>
</refmeta>
<refnamediv>
<refname>Group</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>Group</command>
<arg choice="opt">
  <option>Group groupid</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The Group directive configures which group the server daemon will normally 
run at. See User for more details.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="GroupOwner">
<?dbhtml filename="config_ref_GroupOwner.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>GroupOwner</primary></indexterm>
GroupOwner
</refentrytitle>
</refmeta>
<refnamediv>
<refname>GroupOwner</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>GroupOwner</command>
<arg choice="opt">
  <option>GroupOwner groupname</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
&lt;Anonymous&gt;, &lt;Directory&gt;, .ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The GroupOwner directive configures which group all newly created directories 
and files will be owned by, within the context that GroupOwner is applied to. 
The group ID of groupname cannot be 0.
Note that GroupOwner cannot be used to override the host OS/file system user/group 
paradigm. If the current user is not a member of the specified group, new files 
and directories will not be able to be chown()ed to the GroupOwner group. If 
this happens, file STOR (send file from client to server) and MKD/XMKD (mkdir) operations 
will succeed normally, however the new directory entries will be owned by the 
current user's default group (a warning message is also logged) instead of by 
the desired group.  If you also use UserOwner
in the same context, this restriction is lifted.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="GroupPassword">
<?dbhtml filename="config_ref_GroupPassword.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>GroupPassword</primary></indexterm>
GroupPassword
</refentrytitle>
</refmeta>
<refnamediv>
<refname>GroupPassword</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>GroupPassword</command>
<arg choice="opt">
  <option>GroupPassword groupid hashed-password</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0pl5 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The GroupPassword directive creates a special &quot;group&quot; password which 
allows all users in the specified group to authenticate using a single password. 
The group/password supplied is only effective inside the context to which GroupPassword 
is applied. The hashed-password argument is a standard 
cleartext password which has been passed through the standard unix crypt() library 
function. Extreme care should be taken when using GroupPassword, as 
serious security problems may arise if group membership is not carefully controlled.
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
UserPassword
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="GroupRatio">
<?dbhtml filename="config_ref_GroupRatio.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_ratio
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>GroupRatio</primary></indexterm>
GroupRatio
</refentrytitle>
</refmeta>
<refnamediv>
<refname>GroupRatio</refname>
<refpurpose>Ratio directive</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>GroupRatio</command>
<arg choice="opt">
  <option>GroupRatio foo1 foo2 foo3</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None known
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
&lt;Directory&gt;, &lt;Anonymous&gt;, &lt;Limit&gt;,.ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_ratio
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
at least 1.2.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The GroupRatio directive ....
Example:
GroupRatio</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="HiddenStor">
<?dbhtml filename="config_ref_HiddenStor.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>HiddenStor</primary></indexterm>
HiddenStor
</refentrytitle>
</refmeta>
<refnamediv>
<refname>HiddenStor</refname>
<refpurpose>Enables more safe file uploads</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>HiddenStor</command>
<arg choice="opt">
  <option>HiddenStor on|off</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
HiddenStor off
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
&lt;Directory&gt;, &lt;Anonymous&gt;, &lt;VirtualHost&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0pre5 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The HiddenStor directive enables two-step file uploads: files are uploaded 
as &quot;.in.filename.&quot; and once the upload is complete, 
renamed to just &quot;filename&quot;. This provides a 
degree of atomicity and helps prevent 1) incomplete uploads and 2) files being 
used while they're still in the progress of being uploaded. Note: 
if the temporary file name is already in use (e.g., a server crash during upload), 
it will prevent the file from being uploaded.</para>

<para>
The REST (Restart STOR) command is automatically blocked when HiddenStor is
enabled, with the server returning a 501 error code to the client.
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<link linkend="AllowStoreRestart">AllowStoreRestart</link>
<link linkend="DeleteAbortedStores">DeleteAbortedStores</link>
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="HideGroup">
<?dbhtml filename="config_ref_HideGroup.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>HideGroup</primary></indexterm>
HideGroup
</refentrytitle>
</refmeta>
<refnamediv>
<refname>HideGroup</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>HideGroup</command>
<arg choice="opt">
  <option>HideGroup groupid</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
&lt;Directory&gt;, &lt;Anonymous&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The HideGroup directive configures a 
&lt;Directory&gt; or &lt; Anonymous&gt; block to hide all directory 
entries owned by the specified group, unless the group is the primary 
group of the currently logged-in, authenticated user . Normally, hidden 
directories and files cannot be seen via LIST or NLST commands but can 
be operated on via other FTP commands (CWD, DELE, RETR, etc). This behavior 
can be modified via the IgnoreHidden directive.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
See Also: HideUser, HideNoAccess, IgnoreHidden
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="HideNoAccess">
<?dbhtml filename="config_ref_HideNoAccess.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>HideNoAccess</primary></indexterm>
HideNoAccess
</refentrytitle>
</refmeta>
<refnamediv>
<refname>HideNoAccess</refname>
<refpurpose>Block the listing of directory entries to which the user
has no access permissions</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>HideNoAccess</command>
<arg choice="opt">
  <option>HideNoAccess on|off</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
&lt;Directory&gt;,&lt;Anonymous&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>

<para>The HideNoAccess directive configures a &lt;Directory&gt; or
&lt;Anonymous&gt; block to hide all directory entries in a directory
listing (via the LIST or NLST FTP commands) to which the current
logged-in, authenticated user has no access. Normal Unix-style
permissions always apply, so that although a user may not be able to
see a directory entry that has HideNoAccess applied, they will receive
a normal &quot;Permission denied&quot; error message when attempting
to blindly manipulate the file system object. The directory or file
can be made completely invisible to all FTP commands by applying
IgnoreHidden in conjunction with HideNoAccess.</para>

</refsect1>

<refsect1>
<title>See also</title>
<para>
See Also: HideUser, HideGroup, IgnoreHidden
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="HideUser">
<?dbhtml filename="config_ref_HideUser.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>HideUser</primary></indexterm>
HideUser
</refentrytitle>
</refmeta>
<refnamediv>
<refname>HideUser</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>HideUser</command>
<arg choice="opt">
  <option>HideUser userid</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
&lt;Directory&gt;, &lt;Anonymous&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The HideUser directive configures a &lt;Directory&gt; or &lt;Anonymous&gt;
block to hide all directory entries owned by the specified user, unless
the owning user is the currently logged-in, authenticated user. Normally,
hidden directories and files cannot be seen via LIST or NLST commands but
can be operated on via other FTP commands (CWD, DELE, RETR, etc). This
behavior can be modified via the IgnoreHidden directive. </para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
HideGroup, HideNoAccess, IgnoreHidden
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="HostRatio">
<?dbhtml filename="config_ref_HostRatio.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_ratio
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>HostRatio</primary></indexterm>
HostRatio
</refentrytitle>
</refmeta>
<refnamediv>
<refname>HostRatio</refname>
<refpurpose>Ratio directive</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>HostRatio</command>
<arg choice="opt">
  <option>HostRatio foo1 foo2 foo3</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None known
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
&lt;Directory&gt;, &lt;Anonymous&gt;, &lt;Limit&gt;,.ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_ratio
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
at least 1.2.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The HostRatio directive ....
Example:
HostRatio</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="IdentLookups">
<?dbhtml filename="config_ref_IdentLookups.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>IdentLookups</primary></indexterm>
IdentLookups
</refentrytitle>
</refmeta>
<refnamediv>
<refname>IdentLookups</refname>
<refpurpose>Toggle ident lookups</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>IdentLookups</command>
<arg choice="opt">
  <option>IdentLookups on|off</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
IdentLookups on
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.1.5 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
Normally, when a client initially connects to proftpd, the ident protocol
(RFC1413) is used to attempt to identify the remote username. This can
be controlled via the IdentLookups directive.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="IfDefine">
<?dbhtml filename="config_ref_IfDefine.html">
<refentryinfo>
  <keywordset>
    <keyword>mod_core</keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>IfDefine</primary></indexterm>
IfDefine
</refentrytitle>
</refmeta>
<refnamediv>
<refname>IfDefine</refname>
<refpurpose>To control the use of sections of the configuration</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>IfDefine</command>
<arg choice="opt">
  <option>[!]define-label</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>
 
<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
none
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
any
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.6rc1 and later
</para> </listitem>
</varlistentry>
</variablelist>

<refsect1>
<title>Description</title>
<para>
The &lt;IfDefine test&gt;...&lt;/IfDefine&gt; section is used to mark
directives that are conditional. The directives within an IfDefine
section are only processed if the test is true. If the test is false,
everything between the start and end markers is ignored.
</para>

<para>
The test in the &lt;IfDefine&gt; section directive can be one of two
forms: 'parameter-name' or '!parameter-name'
</para>

<para>
In the former case, the directives between the start and end markers are
only processed if the parameter named parameter-name is defined. The
second format reverses the test, and only processes the directives if
parameter-name is not defined. 
</para>

<para>
The parameter-name argument is a define as given on the command line
via -Dparameter-name, at the time the server was started.
</para>

<para> 
&lt;IfDefine&gt; sections are nest-able, which can be used to implement
simple multiple-parameter tests.
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<link linkend="Define">Define</link>,
<link linkend="IfModule">IfModule</link>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>

<literallayout>
$ proftpd -DDoSomething

--[ proftpd.conf ]--
&lt;IfDefine DoSomething&gt;
# do something here
--[ end ]--
</IfDefine>

</literallayout>

</refsect1>
</refentry>

<refentry id="IfModule">
<?dbhtml filename="config_ref_IfModule.html">
<refentryinfo>
  <keywordset>
    <keyword>mod_core</keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>IfModule</primary></indexterm>
IfModule
</refentrytitle>
</refmeta>
<refnamediv>
<refname>IfModule</refname>
<refpurpose>Parse a section of config based on module name</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>IfModule</command>
<arg choice="opt">
  <option>[!]module-name</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>
 
<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
none
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
any
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.6rc1 and later
</para> </listitem>
</varlistentry>
</variablelist>

<refsect1>
<title>Description</title>
<para>
The &lt;IfModule test&gt;...&lt;/IfModule&gt; section is used to mark
directives that are conditional. The directives within an IfModule
section are only processed if the test is true. If the test is false,
everything between the start and end markers is ignored.
</para>

<para>
The test in the &lt;IfModule&gt; section directive can be one of two
forms: "module name" or "!module name"
</para>

<para>
In the former case, the directives between the start and end markers
are only processed if the module named module name is compiled in to
ProFTPD. The second format reverses the test, and only processes the
directives if module name is not compiled in.
</para>

<para>
The module name argument is a module name as given as the file name of
the module, at the time it was compiled. For example, mod_sql.c.
</para>

<para>
&lt;IfModule&gt; sections are nest-able, which can be used to implement
simple multiple-module tests.
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<link linkend="Define">Define</link>, <link linkend="IfDefine">IfDefine</link>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>

<literallayout>
&lt;IfModule mod_load.c&gt;
MaxLoad                 10 "Access denied, server load too high"
&lt;/IfModule&gt;
</literallayout>

<para>
FIXFIX
</para>

</refsect1>
</refentry>

<refentry id="IgnoreHidden">
<?dbhtml filename="config_ref_IgnoreHidden.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>IgnoreHidden</primary></indexterm>
IgnoreHidden
</refentrytitle>
</refmeta>
<refnamediv>
<refname>IgnoreHidden</refname>
<refpurpose>Treat 'hidden' files as if they don't exist</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>IgnoreHidden</command>
<arg choice="opt">
  <option>IgnoreHidden on|off</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
IgnoreHidden off
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
&lt;Limit&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
Normally, files hidden via HideNoAccess, HideUser or HideGroup
can be operated on by all FTP commands (assuming Unix file
permissions allow access), even though they do not appear in directory
listings. Additionally, even when normal file system permissions disallow
access, proftpd returns a &quot;Permission denied&quot; error to the
client, indicating that the requested object does exist, even if it
cannot be acted upon. IgnoreHidden configures a &lt;Limit&gt; block to
completely ignore any hidden directory entries for the set of limited FTP
commands. This has the effect of returning an error similar to &quot;No
such file or directory&quot; when the client attempts to use the limited
command upon a hidden directory or file.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="Include">
<?dbhtml filename="config_ref_Include.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>Include</primary></indexterm>
Include
</refentrytitle>
</refmeta>
<refnamediv>
<refname>Include</refname>
<refpurpose>Load additional configuration directives from a file</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>Include</command>
<arg choice="opt">
  <option>Include file</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Directory&gt;, &lt;Anonymous&gt;, &lt;VirtualHost&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
This directive allows you to include another configuration file within your current configuration file.  The given file argument must be the full path to
the file to be included.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="LDAPAuthBinds">
	<?dbhtml filename="config_ref_LDAPAuthBinds.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_ldap
    </keyword>
  </keywordset>
</refentryinfo>
	<refmeta>
		<refentrytitle>
			<indexterm><primary>LDAPAuthBinds</primary></indexterm>
			LDAPAuthBinds
		</refentrytitle>
	</refmeta>

	<refnamediv>
		<refname>LDAPAuthBinds</refname>
		<refpurpose>FIXME FIXME</refpurpose>
	</refnamediv>

	<refsynopsisdiv>
		<cmdsynopsis>
			<command>Syntax: LDAPAuthBinds</command>
			<arg choice="opt">
				<option>on</option>
				<option>off</option>
			</arg>
		</cmdsynopsis>


	<variablelist>
		<title>FIX FIX FIX</title>

		<varlistentry>
			<term><synopsis>Default</synopsis></term>
			<listitem><para>
				LDAPAuthBinds off in mod_ldap <= 2.7.6,
				LDAPAuthBinds on in mod_ldap >= 2.8
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Context</synopsis></term>
			<listitem><para>
				server config, &lt;VirtualHost&gt;, &lt;Global&gt;
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Module</synopsis></term>
			<listitem><para>
mod_ldap
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Compatibility</synopsis></term>
			<listitem><para>
				mod_ldap v2.5 and later
			</para></listitem>
		</varlistentry>
	</variablelist>
</refsynopsisdiv>
	<refsect1>
		<title>Description</title>

		<para>By default, the DN specified by LDAPDNInfo will be used to
		bind to the LDAP server to obtain user information, including the
		userPassword attribute. If LDAPAuthBinds is set to on, the DN
		specified by LDAPDNInfo will be used to fetch all user information
		except the userPassword attribute. Then, mod_ldap will bind to the
		LDAP server as the user who is logging in via FTP with the
		user-supplied password. If this bind succeeds, the user is
		considered authenticated and is allowed to log in. This method of
		LDAP authentication has the added benefit of supporting any password
		encryption scheme that your LDAP server supports.</para>
	</refsect1>

	<refsect1>
		<title>See also</title>
		<para></para>
	</refsect1>

	<refsect1>
		<title>Examples</title>
		<para></para>
	</refsect1>
</refentry>
<refentry id="LDAPDNInfo">
	<?dbhtml filename="config_ref_LDAPDNInfo.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_ldap
    </keyword>
  </keywordset>
</refentryinfo>
	<refmeta>
		<refentrytitle>
			<indexterm><primary>LDAPDNInfo</primary></indexterm>
			LDAPDNInfo
		</refentrytitle>
	</refmeta>

	<refnamediv>
		<refname>LDAPDNInfo</refname>
		<refpurpose>Set DN information to be used for initial bind</refpurpose>
	</refnamediv>

	<refsynopsisdiv>
		<cmdsynopsis>
			<command>LDAPDNInfo</command>
			<arg choice="opt">
				<option>LDAPDNInfo "ldap-dn" "dn-password"</option>
			</arg>
		</cmdsynopsis>


	<variablelist>
		<title></title>

		<varlistentry>
			<term><synopsis>Default</synopsis></term>
			<listitem><para>
				LDAPDNInfo "" "" (anonymous bind)
			</para></listitem>
		</varlistentry>

		<varlistentry><term><synopsis>Context</synopsis></term>
			<listitem><para>
				server config, &lt;VirtualHost&gt;, &lt;Global&gt;
			</para></listitem>
		</varlistentry>

		<varlistentry><term><synopsis>Module</synopsis></term>
			<listitem><para>
mod_ldap
			</para></listitem>
		</varlistentry>

		<varlistentry><term><synopsis>Compatibility</synopsis></term>
			<listitem><para>
			mod_ldap v2.0 and later
			</para></listitem>
		</varlistentry>
	</variablelist>
</refsynopsisdiv>

	<refsect1>
		<title>Description</title>

		<para>This directive specifies the LDAP DN and password to use when
		binding to the LDAP server. If this configuration directive is not
		specified, anonymous binds are used.</para>
	</refsect1>

	<refsect1>
		<title>See also</title>
		<para></para>
	</refsect1>

	<refsect1>
		<title>Examples</title>
		<para></para>
	</refsect1>
</refentry>
<refentry id="LDAPDefaultAuthScheme">
	<?dbhtml filename="config_ref_LDAPDefaultAuthScheme.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_ldap
    </keyword>
  </keywordset>
</refentryinfo>
	<refmeta>
		<refentrytitle>
			<indexterm><primary>LDAPDefaultAuthScheme</primary></indexterm>
			LDAPDefaultAuthScheme
		</refentrytitle>
	</refmeta>

	<refnamediv>
		<refname>LDAPDefaultAuthScheme</refname>
		<refpurpose>
			Set the authentication scheme/hash that is used when no leading
			{hashname} is present.
		</refpurpose>
	</refnamediv>

	<refsynopsisdiv>
		<cmdsynopsis>
			<command>LDAPDefaultAuthScheme</command>
			<arg choice="opt">
				<option>crypt</option>
				<option>clear</option>
			</arg>
		</cmdsynopsis>

	<variablelist>
		<title></title>

		<varlistentry>
			<term><synopsis>Default</synopsis></term>
			<listitem><para>
				LDAPDefaultAuthScheme "crypt"
			</para>
                        </listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Context</synopsis></term>
			<listitem><para>
				server config, &lt;VirtualHost&gt;, &lt;Global&gt;
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Module</synopsis></term>
			<listitem><para>
mod_ldap
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Compatibility</synopsis></term>
			<listitem><para>
				mod_ldap v2.0 and later
			</para></listitem>
		</varlistentry>
	</variablelist>
</refsynopsisdiv>

	<refsect1>
		<title>Description</title>

		<para>Specifies the authentication scheme used for passwords with no
		{prefix} in the LDAP database. For example, if you are using
		something like userPassword: mypass in your LDAP database, you would
		want to set LDAPDefaultAuthScheme to clear.</para>
	</refsect1>

	<refsect1>
		<title>See also</title>
		<para></para>
	</refsect1>

	<refsect1>
		<title>Examples</title>
		<para></para>
	</refsect1>
</refentry>
<refentry id="LDAPDefaultGID">
	<?dbhtml filename="config_ref_LDAPDefaultGID.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_ldap
    </keyword>
  </keywordset>
</refentryinfo>
	<refmeta>
		<refentrytitle>
			<indexterm><primary>LDAPDefaultGID</primary></indexterm>
			LDAPDefaultGID
		</refentrytitle>
	</refmeta>

	<refnamediv>
		<refname>LDAPDefaultGID</refname>
		<refpurpose>
			Set the default GID to be assigned to users when no uidNumber
			attribute is found.
		</refpurpose>
	</refnamediv>

	<refsynopsisdiv>
		<cmdsynopsis>
			<command>LDAPDefaultGID</command>
			<arg choice="opt">
				<option>default-gid</option>
			</arg>
		</cmdsynopsis>

	<variablelist>
		<title></title>

		<varlistentry>
			<term><synopsis>Default</synopsis></term>
			<listitem><para>
				None
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Context</synopsis></term>
			<listitem><para>
				server config, &lt;VirtualHost&gt;, &lt;Global&gt;
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Module</synopsis></term>
			<listitem><para>
mod_ldap
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Compatibility</synopsis></term>
			<listitem><para>
				mod_ldap v2.0 and later
			</para></listitem>
		</varlistentry>
	</variablelist>
</refsynopsisdiv>

	<refsect1>
		<title>Description</title>

		<para>This directive is useful primarily in virtual-user
		environments common in large-scale ISPs and hosting organizations.
		If a user does not have a LDAP gidNumber attribute, the
		LDAPDefaultGID is used. This allows one to have a large number of
		users in an LDAP database without gidNumber attributes; setting this
		configuration directive will automatically assign those users a
		single GID.</para>
	</refsect1>

	<refsect1>
		<title>See also</title>
		<para></para>
	</refsect1>

	<refsect1>
		<title>Examples</title>
		<para></para>
	</refsect1>

</refentry>
<refentry id="LDAPDefaultUID">
	<?dbhtml filename="config_ref_LDAPDefaultUID.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_ldap
    </keyword>
  </keywordset>
</refentryinfo>
	<refmeta>
		<refentrytitle>
			<indexterm><primary>LDAPDefaultUID</primary></indexterm>
			LDAPDefaultUID
		</refentrytitle>
	</refmeta>

	<refnamediv>
		<refname>LDAPDefaultUID</refname>
		<refpurpose>
			Set the default GID to be assigned to users when no uidNumber
			attribute is found.
		</refpurpose>
	</refnamediv>

	<refsynopsisdiv>
		<cmdsynopsis>
			<command>LDAPDefaultUID</command>
			<arg choice="opt">
				<option>default-uid</option>
			</arg>
		</cmdsynopsis>

	<variablelist>
		<title></title>

		<varlistentry><term><synopsis>Default</synopsis></term>
			<listitem><para>
				None
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Context</synopsis></term>
			<listitem><para>
				server config, &lt;VirtualHost&gt;, &lt;Global&gt;
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Module</synopsis></term>
			<listitem><para>
mod_ldap
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Compatibility</synopsis></term>
			<listitem><para>
				mod_ldap v2.0 and later
			</para></listitem>
		</varlistentry>
	</variablelist>
</refsynopsisdiv>

	<refsect1>
		<title>Description</title>

		<para>This directive is useful primarily in virtual-user
		environments common in large-scale ISPs and hosting organizations.
		If a user does not have a LDAP uidNumber attribute, the
		LDAPDefaultUID is used. This allows one to have a large number of
		users in an LDAP database without uidNumber attributes; setting this
		configuration directive will automatically assign those users a
		single UID.</para>
	</refsect1>

	<refsect1>
		<title>See also</title>
		<para></para>
	</refsect1>

	<refsect1>
		<title>Examples</title>
		<para></para>
	</refsect1>
</refentry>
<refentry id="LDAPDoAuth">
	<?dbhtml filename="config_ref_LDAPDoAuth.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_ldap
    </keyword>
  </keywordset>
</refentryinfo>
	<refmeta>
		<refentrytitle>
			<indexterm><primary>LDAPDoAuth</primary></indexterm>
			LDAPDoAuth
		</refentrytitle>
	</refmeta>

	<refnamediv>
		<refname>LDAPDoAuth</refname>
		<refpurpose>Enable LDAP authentication</refpurpose>
	</refnamediv>

	<refsynopsisdiv>
		<cmdsynopsis>
			<command>LDAPDoAuth</command>
			<arg choice="opt">
				<option>on</option>
				<option>off</option>
			</arg>

			<arg choice="opt">
				<option>"auth-base-prefix"</option>
			</arg>

			<arg choice="opt">
				<option>"search-filter-template"</option>
			</arg>
		</cmdsynopsis>

	<variablelist>
		<title></title>

		<varlistentry>
			<term><synopsis>Default</synopsis></term>
			<listitem><para>
				LDAPDoAuth off
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Context</synopsis></term>
			<listitem><para>
				server config, &lt;VirtualHost&gt;, &lt;Global&gt;
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Module</synopsis></term>
			<listitem><para>
mod_ldap
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Compatibility</synopsis></term>
			<listitem><para>
				mod_ldap v2.0 and later
			</para></listitem>
		</varlistentry>
	</variablelist>
</refsynopsisdiv>

	<refsect1>
		<title>Description</title>

		<para>This configuration directive activates LDAP authentication.
		The second argument to this directive is the LDAP prefix to use for
		authentication.  The third argument is a template to be used for the
		search filter; %v will be replaced with the username that is being
		authenticated. By default, the search filter template
		"(&amp;(uid=%v)(objectclass=posixAccount))" is used. Search filter
		templates are only supported in mod_ldap v2.7 and later.</para>
	</refsect1>

	<refsect1>
		<title>See also</title>
		<para></para>
	</refsect1>

	<refsect1>
		<title>Examples</title>
		<para></para>
	</refsect1>
</refentry>
<refentry id="LDAPDoGIDLookups">
	<?dbhtml filename="config_ref_LDAPDoGIDLookups.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_ldap
    </keyword>
  </keywordset>
</refentryinfo>
	<refmeta>
		<refentrytitle>
			<indexterm><primary>LDAPDoGIDLookups</primary></indexterm>
			LDAPDoGIDLookups
		</refentrytitle>
	</refmeta>

	<refnamediv>
		<refname>LDAPDoGIDLookups</refname>
		<refpurpose>
			Enable LDAP lookups for user group membership and GIDs in
			directory listings
		</refpurpose>
	</refnamediv>

	<refsynopsisdiv>
		<cmdsynopsis>
			<command>LDAPDoGIDLookups</command>
			<arg choice="opt">
				<option>on</option>
				<option>off</option>
			</arg>

			<arg choice="opt">
				<option>"uid-base-prefix"</option>
			</arg>

			<arg choice="opt">
				<option>"search-filter-template"</option>
			</arg>
		</cmdsynopsis>


	<variablelist>
		<title></title>

		<varlistentry>
			<term><synopsis>Default</synopsis></term>
			<listitem><para>
				LDAPDoGIDLookups off
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Context</synopsis></term>
			<listitem><para>
				server config, &lt;VirtualHost&gt;, &lt;Global&gt;
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Module</synopsis></term>
			<listitem><para>
mod_ldap
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Compatibility</synopsis></term>
			<listitem><para>
				mod_ldap v2.0 and later
			</para></listitem>
		</varlistentry>
	</variablelist>
</refsynopsisdiv>

	<refsect1>
		<title>Description</title>

		<para>This configuration directive activates LDAP GID-to-name
		lookups in directory listings. The second argument to this directive
		is the LDAP prefix to use for GID-to-name lookups. The third
		argument is a template to be used for the search filter; %v will be
		replaced with the GID that is being looked up. By default, the
		search filter template
		"(&amp;(gidNumber=%v)(objectclass=posixGroup))" is used. Search
		filter templates are only supported in mod_ldap v2.7 and
		later.</para>
	</refsect1>

	<refsect1>
		<title>See also</title>
		<para></para>
	</refsect1>

	<refsect1>
		<title>Examples</title>
		<para></para>
	</refsect1>
</refentry>
<refentry id="LDAPDoUIDLookups">
	<?dbhtml filename="config_ref_LDAPDoUIDLookups.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_ldap
    </keyword>
  </keywordset>
</refentryinfo>
	<refmeta>
		<refentrytitle>
			<indexterm><primary>LDAPDoUIDLookups</primary></indexterm>
			LDAPDoUIDLookups
		</refentrytitle>
	</refmeta>

	<refnamediv>
		<refname>LDAPDoUIDLookups</refname>
		<refpurpose>
			Enable LDAP lookups for UIDs in directory listings
		</refpurpose>
	</refnamediv>

	<refsynopsisdiv>
		<cmdsynopsis>
			<command>LDAPDoUIDLookups</command>
			<arg choice="opt">
				<option>on</option>
				<option>off</option>
			</arg>

			<arg choice="opt">
				<option>"search-filter-template"</option>
			</arg>

			<arg choice="opt">
				<option>"uid-base-prefix"</option>
			</arg>
		</cmdsynopsis>

	<variablelist>
		<title></title>

		<varlistentry>
			<term><synopsis>Default</synopsis></term>
			<listitem><para>
				LDAPDoUIDLookups off
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Context</synopsis></term>
			<listitem><para>
				server config, &lt;VirtualHost&gt;, &lt;Global&gt;
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Module</synopsis></term>
			<listitem><para>
mod_ldap
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Compatibility</synopsis></term>
			<listitem><para>
				mod_ldap v2.0 and later
			</para></listitem>
		</varlistentry>
	</variablelist>
</refsynopsisdiv>

	<refsect1>
		<title>Description</title>

		<para>This configuration directive activates LDAP UID-to-name
		lookups in directory listings. The second argument to this directive
		is the LDAP prefix to use for UID-to-name lookups. The third
		argument is a template to be used for the search filter; %v will be
		replaced with the UID that is being looked up. By default, the
		search filter template
		"(&amp;(uidNumber=%v)(objectclass=posixAccount))" is used. Search
		filter templates are only supported in mod_ldap v2.7 and
		later.</para>
	</refsect1>

	<refsect1>
		<title>See also</title>
		<para></para>
	</refsect1>

	<refsect1>
		<title>Examples</title>
		<para></para>
	</refsect1>
</refentry>
<refentry id="LDAPForceDefaultGID">
	<?dbhtml filename="config_ref_LDAPForceDefaultGID.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_ldap
    </keyword>
  </keywordset>
</refentryinfo>
	<refmeta>
		<refentrytitle>
			<indexterm><primary>LDAPForceDefaultGID</primary></indexterm>
			LDAPForceDefaultGID
		</refentrytitle>
	</refmeta>

	<refnamediv>
		<refname>LDAPForceDefaultGID</refname>
		<refpurpose>Force all LDAP-authenticated users to use the same GID.</refpurpose>
	</refnamediv>

	<refsynopsisdiv>
		<cmdsynopsis>
			<command>Syntax: LDAPForceDefaultGID</command>
			<arg choice="opt">
				<option>on</option>
				<option>off</option>
			</arg>
		</cmdsynopsis>


	<variablelist>
		<title></title>

		<varlistentry>
			<term><synopsis>Default</synopsis></term>
			<listitem><para>
				LDAPForceDefaultGID off
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Context</synopsis></term>
			<listitem><para>
				server config, &lt;VirtualHost&gt;, &lt;Global&gt;
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Module</synopsis></term>
			<listitem><para>
mod_ldap
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Compatibility</synopsis></term>
			<listitem><para>
				mod_ldap v2.8 and later
			</para></listitem>
		</varlistentry>
	</variablelist>
</refsynopsisdiv>

	<refsect1>
		<title>Description</title>

		<para>Even when a <link linkend="LDAPDefaultGID">LDAPDefaultGID</link>
		is configured, mod_ldap will allow individual users to have
		gidNumber attributes that will override this default GID. With
		LDAPForceDefaultGID enabled, all LDAP-authenticated users are given
		the default GID; GIDs may not be overridden by gidNumber
		attributes.</para>
	</refsect1>

	<refsect1>
		<title>See also</title>
		<para></para>
	</refsect1>

	<refsect1>
		<title>Examples</title>
		<para></para>
	</refsect1>
</refentry>
<refentry id="LDAPForceDefaultUID">
	<?dbhtml filename="config_ref_LDAPForceDefaultUID.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_ldap
    </keyword>
  </keywordset>
</refentryinfo>
	<refmeta>
		<refentrytitle>
			<indexterm><primary>LDAPForceDefaultUID</primary></indexterm>
			LDAPForceDefaultUID
		</refentrytitle>
	</refmeta>

	<refnamediv>
		<refname>LDAPForceDefaultUID</refname>
		<refpurpose>Force all LDAP-authenticated users to use the same UID.</refpurpose>
	</refnamediv>

	<refsynopsisdiv>
		<cmdsynopsis>
			<command>Syntax: LDAPForceDefaultUID</command>
			<arg choice="opt">
				<option>on</option>
				<option>off</option>
			</arg>
		</cmdsynopsis>

	<variablelist>
		<title></title>

		<varlistentry>
			<term><synopsis>Default</synopsis></term>
			<listitem><para>
				LDAPForceDefaultUID off
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Context</synopsis></term>
			<listitem><para>
				server config, &lt;VirtualHost&gt;, &lt;Global&gt;
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Module</synopsis></term>
			<listitem><para>
mod_ldap
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Compatibility</synopsis></term>
			<listitem><para>
				mod_ldap v2.8 and later
			</para></listitem>
		</varlistentry>
	</variablelist>
</refsynopsisdiv>

	<refsect1>
		<title>Description</title>

		<para>Even when a <link linkend="LDAPDefaultUID">LDAPDefaultUID</link>
		is configured, mod_ldap will allow individual users to have
		uidNumber attributes that will override this default UID. With
		LDAPForceDefaultUID enabled, all LDAP-authenticated users are given
		the default UID; UIDs may not be overridden by uidNumber
		attributes.</para>
	</refsect1>

	<refsect1>
		<title>See also</title>
		<para></para>
	</refsect1>

	<refsect1>
		<title>Examples</title>
		<para></para>
	</refsect1>
</refentry>
<refentry id="LDAPHomedirOnDemand">
	<?dbhtml filename="config_ref_LDAPHomedirOnDemand.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_ldap
    </keyword>
  </keywordset>
</refentryinfo>
	<refmeta>
		<refentrytitle>
			<indexterm><primary>LDAPHomedirOnDemand</primary></indexterm>
			LDAPHomedirOnDemand
		</refentrytitle>
	</refmeta>

	<refnamediv>
		<refname>LDAPHomedirOnDemand</refname>
		<refpurpose>
			Enable the creation of user home directories on demand
		</refpurpose>
	</refnamediv>

	<refsynopsisdiv>
		<cmdsynopsis>
			<command>LDAPHomedirOnDemand</command>
			<arg choice="opt">
				<option>on</option>
				<option>off</option>
			</arg>

			<arg choice="opt">
				<option>directory-mode</option>
			</arg>
		</cmdsynopsis>

	<variablelist>
		<title></title>

		<varlistentry>
			<term><synopsis>Default</synopsis></term>
			<listitem><para>
				LDAPHomedirOnDemand off
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Context</synopsis></term>
			<listitem><para>
				server config, &lt;VirtualHost&gt;, &lt;Global&gt;
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Module</synopsis></term>
			<listitem><para>
mod_ldap
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Compatibility</synopsis></term>
			<listitem><para>
				mod_ldap v2.0 and later
			</para></listitem>
		</varlistentry>
	</variablelist>
</refsynopsisdiv>

	<refsect1>
		<title>Description</title>

		<para>LDAPHomedirOnDemand activates on-demand home directory creation.
		If a user logs in and does not yet have a home directory, a home
		directory is created automatically.</para>

		<para>In mod_ldap <= 2.7.6, the home directory will be owned by the
		same user and group that ProFTPD runs as (see the User and Group
		configuration directives). mod_ldap >= 2.8 can create home
		directories for users with any UID/GID, not just those with the same
		UID/GID as the main ProFTPD server.</para>

		<para>The second argument allows you to specify the mode (default
		permissions) to use when creating home directories on demand,
		subject to ProFTPD's umask (see the Umask directive). If no
		directory mode is specified, the default of 0755 is used. Directory
		mode setting is only supported in mod_ldap v2.7 or later.</para>
	</refsect1>

	<refsect1>
		<title>See also</title>
		<para></para>
	</refsect1>

	<refsect1>
		<title>Examples</title>
		<para></para>
	</refsect1>
</refentry>
<refentry id="LDAPHomedirOnDemandPrefix">
	<?dbhtml filename="config_ref_LDAPHomedirOnDemandPrefix.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_ldap
    </keyword>
  </keywordset>
</refentryinfo>
	<refmeta>
		<refentrytitle>
			<indexterm><primary>LDAPHomedirOnDemandPrefix</primary></indexterm>
			LDAPHomedirOnDemandPrefix
		</refentrytitle>
	</refmeta>

	<refnamediv>
		<refname>LDAPHomedirOnDemandPrefix</refname>
		<refpurpose>
			Enable the creation of user home directories on demand
		</refpurpose>
	</refnamediv>

	<refsynopsisdiv>
		<cmdsynopsis>
			<command>LDAPHomedirOnDemandPrefix</command>
			<arg choice="opt">
				<option>leading-path</option>
			</arg>
		</cmdsynopsis>

	<variablelist>
		<title></title>

		<varlistentry>
			<term><synopsis>Default</synopsis></term>
			<listitem><para>
				LDAPHomedirOnDemandPrefix off
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Context</synopsis></term>
			<listitem><para>
				server config, &lt;VirtualHost&gt;, &lt;Global&gt;
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Module</synopsis></term>
			<listitem><para>
mod_ldap
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Compatibility</synopsis></term>
			<listitem><para>
				mod_ldap v2.8 and later
			</para></listitem>
		</varlistentry>
	</variablelist>
</refsynopsisdiv>

	<refsect1>
		<title>Description</title>

		<para>LDAPHomedirOnDemandPrefix enables a prefix to be specified for
		on-demand home directory creation. This is most useful if mod_ldap
		is being used to authenticate against an LDAP directory that does
		not return a homeDirectory attribute, either because it cannot
		(Microsoft Active Directory, for example) or because you do not wish
		to extend your existing directory schema.</para>

		<para>For example, setting this directive to "/home" and logging in
		as the user "joe" would result in his home directory being created
		as "/home/joe". The directory will be created with the mode
		specified in <link
		linkend="LDAPHomedirOnDemand">LDAPHomedirOnDemand</link>.  To use
		this directive, <link
		linkend="LDAPHomedirOnDemand">LDAPHomedirOnDemand</link> must be
		enabled.</para>
	</refsect1>

	<refsect1>
		<title>See also</title>
		<para></para>
	</refsect1>

	<refsect1>
		<title>Examples</title>
		<para></para>
	</refsect1>
</refentry>
<refentry id="LDAPHomedirOnDemandPrefixNoUsername">
<?dbhtml filename="config_ref_LDAPHomedirOnDemandPrefixNoUsername.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_ldap
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>LDAPHomedirOnDemandPrefixNoUsername</primary></indexterm>
LDAPHomedirOnDemandPrefixNoUsername
</refentrytitle>
</refmeta>
<refnamediv>
<refname>LDAPHomedirOnDemandPrefixNoUsername</refname>
<refpurpose>FIXFIXFIX</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>LDAPHomedirOnDemandPrefixNoUsername</command>
<arg choice="opt">
  <option>"name" limit|regex|ip value</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>
 
<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
FIXFIXFIX
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Limit&gt;, .ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_ldap
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.5rc1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
FIX FIX FIX
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>

<literallayout>
FIXFIXFIX
</literallayout>

<para>
FIXFIX
</para>

</refsect1>
</refentry>

<refentry id="LDAPHomedirOnDemandSuffix">
	<?dbhtml filename="config_ref_LDAPHomedirOnDemandSuffix.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_ldap
    </keyword>
  </keywordset>
</refentryinfo>
	<refmeta>
		<refentrytitle>
			<indexterm><primary>LDAPHomedirOnDemandSuffix</primary></indexterm>
			LDAPHomedirOnDemandSuffix
		</refentrytitle>
	</refmeta>

	<refnamediv>
		<refname>LDAPHomedirOnDemandSuffix</refname>
		<refpurpose>
			Specify an additional directory to be created inside a user's
			home directory on demand.
		</refpurpose>
	</refnamediv>

	<refsynopsisdiv>
		<cmdsynopsis>
			<command>LDAPHomedirOnDemandSuffix</command>
			<arg choice="opt">
				<option>additional-directory1</option>
				<option>additional-directory2</option>
				<option>additional-directory3</option>
			</arg>
		</cmdsynopsis>

	<variablelist>
		<title></title>

		<varlistentry>
			<term><synopsis>Default</synopsis></term>
			<listitem><para>
				LDAPHomedirOnDemandSuffix ""
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Context</synopsis></term>
			<listitem><para>
				server config, &lt;VirtualHost&gt;, &lt;Global&gt;
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Module</synopsis></term>
			<listitem><para>
mod_ldap
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Compatibility</synopsis></term>
			<listitem><para>
				mod_ldap v2.6 and later.
			</para></listitem>
		</varlistentry>
	</variablelist>
</refsynopsisdiv>

	<refsect1>
		<title>Description</title>

		<para>to be created within a user's home directory when it is
		created on demand. For example, if a user's home directory is
		"/home/user", setting this configuration directive to "public_html"
		will also create "/home/user/public_html" on demand. In mod_ldap
		v2.7.6 and earlier, you must also activate LDAPHomedirOnDemand in
		your configuration.</para>

		<para>mod_ldap >= 2.8 supports multiple suffix arguments and does
		not require LDAPHomedirOnDemand to be enabled.</para>
	</refsect1>

	<refsect1>
		<title>See also</title>
		<para></para>
	</refsect1>

	<refsect1>
		<title>Examples</title>
		<para></para>
	</refsect1>
</refentry>
<refentry id="LDAPNegativeCache">
	<?dbhtml filename="config_ref_LDAPNegativeCache.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_ldap
    </keyword>
  </keywordset>
</refentryinfo>
	<refmeta>
		<refentrytitle>
			<indexterm><primary>LDAPNegativeCache</primary></indexterm>
			LDAPNegativeCache
		</refentrytitle>
	</refmeta>

	<refnamediv>
		<refname>LDAPNegativeCache</refname>
		<refpurpose>Enable negative caching for LDAP lookups</refpurpose>
	</refnamediv>

	<refsynopsisdiv>
		<cmdsynopsis>
			<command>LDAPNegativeCache</command>
			<arg choice="opt">
				<option>on</option>
				<option>off</option>
			</arg>
		</cmdsynopsis>

	<variablelist>
		<title></title>

		<varlistentry>
			<term><synopsis>Default</synopsis></term>
			<listitem><para>
				LDAPNegativeCache off
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Context</synopsis></term>
			<listitem><para>
				server config, &lt;VirtualHost&gt;, &lt;Global&gt;
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Module</synopsis></term>
			<listitem><para>
mod_ldap
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Compatibility</synopsis></term>
			<listitem><para>
				mod_ldap v1.1 and later
			</para></listitem>
		</varlistentry>
	</variablelist>
</refsynopsisdiv>

	<refsect1>
		<title>Description</title>

		<para>LDAPNegativeCache specifies whether or not to cache negative
		responses from the LDAP server when using LDAP for UID/GID lookups.
		This option is useful if you also use/are in transition from another
		authentication system; if there are many users in your old
		authentication system that aren't in the LDAP database, there can be
		a significant delay when a directory listing is performed as the
		UIDs not in the LDAP database are repeatedly looked up in an attempt
		to present usernames instead of UIDs in directory listings. With
		LDAPNegativeCache set to on, negative ("not found") responses from
		the LDAP server will be cached and speed will improve on directory
		listings that contain many users not present in the LDAP
		database.</para>
	</refsect1>

	<refsect1>
		<title>See also</title>
		<para></para>
	</refsect1>

	<refsect1>
		<title>Examples</title>
		<para></para>
	</refsect1>
</refentry>
<refentry id="LDAPQueryTimeout">
	<?dbhtml filename="config_ref_LDAPQueryTimeout.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_ldap
    </keyword>
  </keywordset>
</refentryinfo>
	<refmeta>
		<refentrytitle>
			<indexterm><primary>LDAPQueryTimeout</primary></indexterm>
			LDAPQueryTimeout
		</refentrytitle>
	</refmeta>

	<refnamediv>
		<refname>LDAPQueryTimeout</refname>
		<refpurpose>Set a timeout for LDAP queries</refpurpose>
	</refnamediv>

	<refsynopsisdiv>
		<cmdsynopsis>
			<command>LDAPQueryTimeout</command>
			<arg choice="opt">
				<option>timeout-seconds</option>
			</arg>
		</cmdsynopsis>

	<variablelist>
		<title></title>

		<varlistentry>
			<term><synopsis>Default</synopsis></term>
			<listitem><para>
				LDAPQueryTimeout default-api-timeout
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Context</synopsis></term>
			<listitem><para>
				server config, &lt;VirtualHost&gt;, &lt;Global&gt;
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Module</synopsis></term>
			<listitem><para>
mod_ldap
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Compatibility</synopsis></term>
			<listitem><para>
				mod_ldap v2.0 and later
			</para></listitem>
		</varlistentry>
	</variablelist>
</refsynopsisdiv>

	<refsect1>
		<title>Description</title>

		<para>Sets the timeout used for LDAP directory queries. The default
		is the default timeout used by your LDAP API.</para>
	</refsect1>

	<refsect1>
		<title>See also</title>
		<para></para>
	</refsect1>

	<refsect1>
		<title>Examples</title>
		<para></para>
	</refsect1>
</refentry>
<refentry id="LDAPSearchScope">
	<?dbhtml filename="config_ref_LDAPSearchScope.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_ldap
    </keyword>
  </keywordset>
</refentryinfo>
	<refmeta>
		<refentrytitle>
			<indexterm><primary>LDAPSearchScope</primary></indexterm>
			LDAPSearchScope
		</refentrytitle>
	</refmeta>

	<refnamediv>
		<refname>LDAPSearchScope</refname>
		<refpurpose>Specify the search scope used in LDAP queries</refpurpose>
	</refnamediv>

	<refsynopsisdiv>
		<cmdsynopsis>
			<command>LDAPSearchScope</command>
			<arg choice="opt">
				<option>onelevel</option>
				<option>subtree</option>
			</arg>
		</cmdsynopsis>

	<variablelist>
		<title></title>

		<varlistentry>
			<term><synopsis>Default</synopsis></term>
			<listitem><para>
				LDAPSearchScope subtree
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Context</synopsis></term>
			<listitem><para>
				server config, &lt;VirtualHost&gt;, &lt;Global&gt;
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Module</synopsis></term>
			<listitem><para>
mod_ldap
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Compatibility</synopsis></term>
			<listitem><para>
				mod_ldap v2.6 and later
			</para></listitem>
		</varlistentry>
	</variablelist>
</refsynopsisdiv>

	<refsect1>
		<title>Description</title>

		<para>Set the scope used for LDAP searches. The default setting,
		subtree, searches for all entries in the tree from the current level
		down. Setting this directive to onelevel searches only one level
		deep in the LDAP tree.</para>
	</refsect1>

	<refsect1>
		<title>See also</title>
		<para></para>
	</refsect1>

	<refsect1>
		<title>Examples</title>
		<para></para>
	</refsect1>
</refentry>
<refentry id="LDAPServer">
	<?dbhtml filename="config_ref_LDAPServer.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_ldap
    </keyword>
  </keywordset>
</refentryinfo>
	<refmeta>
		<refentrytitle>
			<indexterm><primary>LDAPServer</primary></indexterm>
			LDAPServer
		</refentrytitle>
	</refmeta>

	<refnamediv>
		<refname>LDAPServer</refname>
		<refpurpose>Specify the LDAP server to use for lookups</refpurpose>
	</refnamediv>

	<refsynopsisdiv>
		<cmdsynopsis>
			<command>LDAPServer</command>
			<arg choice="opt">
				<option>"hostname1:port1 hostname2:port2"</option>
			</arg>
		</cmdsynopsis>

	<variablelist>
		<title></title>

		<varlistentry>
			<term><synopsis>Default</synopsis></term>
			<listitem><para>
				LDAPServer "localhost"
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Context</synopsis></term>
			<listitem><para>
				server config, &lt;VirtualHost&gt;, &lt;Global&gt;
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Module</synopsis></term>
			<listitem><para>
mod_ldap
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Compatibility</synopsis></term>
			<listitem><para>
				mod_ldap v1.0 and later
			</para></listitem>
		</varlistentry>
	</variablelist>
</refsynopsisdiv>

	<refsect1>
		<title>Description</title>

		<para>LDAPServer allows you to to specify the hostname(s) and
		port(s) of the LDAP server(s) to use for LDAP authentication. If no
		LDAPServer configuration directive is present, the default LDAP
		servers specified by your LDAP API will be used.</para>
	</refsect1>

	<refsect1>
		<title>See also</title>
		<para></para>
	</refsect1>

	<refsect1>
		<title>Examples</title>
		<para></para>
	</refsect1>
</refentry>
<refentry id="LDAPUseTLS">
	<?dbhtml filename="config_ref_LDAPUseTLS.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_ldap
    </keyword>
  </keywordset>
</refentryinfo>
	<refmeta>
		<refentrytitle>
			<indexterm><primary>LDAPUseTLS</primary></indexterm>
			LDAPUseTLS
		</refentrytitle>
	</refmeta>

	<refnamediv>
		<refname>LDAPUseTLS</refname>
		<refpurpose>Enable TLS/SSL connections to the LDAP server.</refpurpose>
	</refnamediv>

	<refsynopsisdiv>
		<cmdsynopsis>
			<command>Syntax: LDAPUseTLS</command>
			<arg choice="opt">
				<option>on</option>
				<option>off</option>
			</arg>
		</cmdsynopsis>

	<variablelist>
		<title></title>

		<varlistentry>
			<term><synopsis>Default</synopsis></term>
			<listitem><para>
				LDAPUseTLS off
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Context</synopsis></term>
			<listitem><para>
				server config, &lt;VirtualHost&gt;, &lt;Global&gt;
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Module</synopsis></term>
			<listitem><para>
mod_ldap
			</para></listitem>
		</varlistentry>

		<varlistentry>
			<term><synopsis>Compatibility</synopsis></term>
			<listitem><para>
				mod_ldap v2.8 and later
			</para></listitem>
		</varlistentry>
	</variablelist>
</refsynopsisdiv>

	<refsect1>
		<title>Description</title>

		<para>By default, mod_ldap connects to the LDAP server via a
		non-encrypted connection. Enabling this option causes mod_ldap to
		use an encrypted (TLS/SSL) connection to the LDAP server. If a
		secure connection to the LDAP server fails, mod_ldap will not
		authenticate users (mod_ldap will *not* fall back to an unsecure
		connection).</para>
	</refsect1>

	<refsect1>
		<title>See also</title>
		<para></para>
	</refsect1>

	<refsect1>
		<title>Examples</title>
		<para></para>
	</refsect1>
</refentry>
<refentry id="LeechRatioMsg">
<?dbhtml filename="config_ref_LeechRatioMsg.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_ratio
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>LeechRatioMsg</primary></indexterm>
LeechRatioMsg
</refentrytitle>
</refmeta>
<refnamediv>
<refname>LeechRatioMsg</refname>
<refpurpose>Sets the 'over ratio' error message</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>LeechRatioMsg</command>
<arg choice="opt">
  <option>LeechRatioMsg foo1 foo2 foo3</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None known
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
&lt;Directory&gt;, &lt;Anonymous&gt;, &lt;Limit&gt;,.ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_ratio
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
at least 1.2.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The LeechRatioMsg directive defines the response message sent
back to the client upon breaking their quota limits.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<programlisting>
LeechRatioMsg "please upload as well as download"
</programlisting>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="Limit">
<?dbhtml filename="config_ref_Limit.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>Limit</primary></indexterm>
Limit
</refentrytitle>
</refmeta>
<refnamediv>
<refname>Limit</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>Limit</command>
<arg choice="opt">
  <option>&lt;Limit command|command-group [command2 ..]&gt;</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Directory&gt;, &lt;Anonymous&gt;, &lt;Global&gt;, .ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The Limit configuration block is used to place access restrictions on one or 
more FTP commands, within a given context. Limits flow downward, so that a Limit 
configuration in the server config context applies to all &lt;Directory&gt; 
and &lt;Anonymous&gt; blocks that also 
reside in the configuration; until it is overridden by a &quot;lower&quot; &lt;Limit&gt; 
block. Any number of command parameters can be specified, 
against which the contents of the &lt;Limit&gt; block will be applied. command 
can be any valid FTP command, but is generally one of the following:
CWD (Change Working Directory)
Sent by client when changing directories.
MKD / XMKD (MaKe Directory)
Sent by client to create a new directory.
RNFR (ReName FRom), RNTO (ReName TO)
Sent as a pair by client to rename a directory entry.
DELE (DELEte)
Sent by client to delete a file.
RMD / XRMD (ReMove Directory)
Sent by client to remove a directory.
RETR (RETRieve)
Transfer a file from the server to the client.
STOR (STORe)
Transfer a file from the client to the server.
In addition, the following command-groups are accepted. 
They have a lower precedence than real commands, meaning that a real command 
limit will always be applied instead of the command-group.
READ
All FTP commands which deal with file reading (directory listing not included): 
  RETR, SITE, SIZE, STAT
WRITE
All FTP commands which deal with file or directory write/creation/deletion:
  APPE, DELE, MKD, RMD, RNTO, STOR, XMKD, XRMD
DIRS
All FTP commands which deal with directory listing:
  CDUP, CWD, LIST, MDTM, NLST, PWD, RNFR, XCUP, XCWD, XPWD
ALL
ALL FTP commands (identical to READ WRITE DIRS).  Note this group has the
lowest precedence of all; it will not override a limit imposed by another
command-group (e.g. DIRS).
Finally, a special command is allowed which can be used to control login access:
LOGIN
Connection or login to the server. Applying a &lt;Limit&gt; to this pseudo-command 
can be used to allow or deny initial connection or login to the context. It 
has no effect, and is ignored, when used in a context other than server config, 
&lt;VirtualHost&gt; or &lt;Anonymous&gt; 
(i.e. using it in a &lt;Directory&gt; context is 
meaningless).
&lt;Limit&gt; command restrictions should not be confused with file/directory 
access permission. While limits can be used to restrict a command on a certain 
directory, they cannot be used to override the file permissions inherent to 
the base operating/file system.
The following FTP commands cannot be restricted via &lt;Limit&gt;:
  ABOR
  HELP
  MODE (not implemented, always S)
  NOOP
  PASS (use &lt;Limit LOGIN&gt;)
  PASV
  PORT
  QUIT
  REST (use AllowRetrieveRestart, AllowStoreRestart)
  STRU (not implemented, always F)
  SYST
  TYPE
  USER (use &lt;Limit LOGIN&gt;)
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
See Also: IgnoreHidden
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="LogFormat">
<?dbhtml filename="config_ref_LogFormat.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_log
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>LogFormat</primary></indexterm>
LogFormat
</refentrytitle>
</refmeta>
<refnamediv>
<refname>LogFormat</refname>
<refpurpose>Specify a logging format</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>LogFormat</command>
<arg choice="opt">
  <option>LogFormat nickname &quot;format-string&quot;</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
LogFormat default &quot;%h %l %u %t \&quot;%r\&quot; %s %b&quot;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_log
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.1.6pl1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The LogFormat directive can be used to create a custom logging format for use 
with the ExtendedLog directive. Once created, the 
format can be referenced by the specified nickname.
The format-string argument can consist of any combination 
of letters, numbers and symbols. The special character % is 
used to start a meta-sequence (see below). To insert a literal % character, 
use %%.</para>

<para>
The following meta sequences are available and are replaced as indicated 
when logging.
%A
&nbsp;
Anonymous username (password given), or UNKNOWN if non-anonymous
%b
&nbsp;
Bytes sent for request
%f
&nbsp;
Filename stored or retrieved, absolute path (not chrooted)
%F
&nbsp;
Filename stored or retrieved, as the client sees it
%{FOOBAR}e
&nbsp;
Contents of environment variable FOOBAR.  Note that the server does not set
any environment variables itself.
%h
&nbsp;
Remote host name
%a
&nbsp;
Remote IP address
%l
&nbsp;
Remote username (from ident), or UNKNOWN if ident lookup failed
%m
&nbsp;
Command (method) name received from client, e.g., RETR
%p
&nbsp;
Local server port number
%v
&nbsp;
Local server name
%P
&nbsp;
Local server process id (pid)
%r
&nbsp;
Full command line received from client
%t
&nbsp;
Current local time
%{format}t
&nbsp;
Current local time formatted (strftime(3) format)
%T
&nbsp;
Time taken to transmit/receive file, in seconds 
%s
&nbsp;
Numeric FTP response code (status)
%u
&nbsp;
Local authenticated userid
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<link linkend="ExtendedLog">ExtendedLog</link>, 
<link linkend="TransferLog">TransferLog</link>
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="LoginPasswordPrompt">
<?dbhtml filename="config_ref_LoginPasswordPrompt.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_auth
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>LoginPasswordPrompt</primary></indexterm>
LoginPasswordPrompt
</refentrytitle>
</refmeta>
<refnamediv>
<refname>LoginPasswordPrompt</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>LoginPasswordPrompt</command>
<arg choice="opt">
  <option>LoginPasswordPrompt on|off</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
LoginPasswordPrompt on
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_auth
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0pre1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
If set to off, ProFTPd will skip the password request if the 
login will be denied regardless of password, e.g., if a &lt;Limit LOGIN&gt; 
directive forbids the connection.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="LsDefaultOptions">
<?dbhtml filename="config_ref_LsDefaultOptions.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_ls
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>LsDefaultOptions</primary></indexterm>
LsDefaultOptions
</refentrytitle>
</refmeta>
<refnamediv>
<refname>LsDefaultOptions</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>LsDefaultOptions</command>
<arg choice="opt">
  <option>LsDefaultOptions "options string"</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_ls
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.1.6 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
Normally, FTP commands involving directory listings (NLST, LIST and STAT) 
use the arguments (options) passed by the client to determine what files are 
displayed and the format they are displayed in. Using the LsDefaultOptions 
directive can alter the default behavior of such listings, but implying that 
a certain option (or options) is always present. For example, to force all 
directory listings to always display ".dotfiles", one might:
LsDefaultOptions "-a"</para>
</refsect1>

<!-- 1.2.6rc1 -n flag added -->

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="MasqueradeAddress">
<?dbhtml filename="config_ref_MasqueradeAddress.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>MasqueradeAddress</primary></indexterm>
MasqueradeAddress
</refentrytitle>
</refmeta>
<refnamediv>
<refname>MasqueradeAddress</refname>
<refpurpose>Configure the server address presented to clients</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>MasqueradeAddress</command>
<arg choice="opt">
  <option>MasqueradeAddress ip-address|dns-hostname</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
none
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.2 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
MasqueradeAddress causes the server to display the network information for
the specified IP address or DNS hostname to the client, on the assumption
that that IP address or DNS host is acting as a NAT gateway or port forwarder
for the server.
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>

<literallayout>
    MasqueradeAddress nat-gw.mydomain.com
</literallayout>

<para>
</para>
</refsect1>
</refentry>

<refentry id="MaxClients">
<?dbhtml filename="config_ref_MaxClients.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>MaxClients</primary></indexterm>
MaxClients
</refentrytitle>
</refmeta>
<refnamediv>
<refname>MaxClients</refname>
<refpurpose>Limits the number of users that can connect</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>MaxClients</command>
<arg choice="opt">
  <option>MaxClients number|none [message]</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
MaxClients none
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Anonymous&gt;, &lt;VirtualHost&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The MaxClients directive configures the maximum number of authenticated clients 
which may be logged into a server or anonymous account. Once this limit is 
reached, additional clients attempting to authenticate will be disconnected.
The special value none may be supplied which removes 
all maximum connection limits from the applicable configuration context. Additionally, 
an optional message argument may be used which will 
be displayed to a client attempting to exceed the maximum value; immediately 
before disconnection. The message argument is parsed 
for the magic string &quot;%m&quot;, which is replaced with 
the configured maximum value. If message is not 
supplied, a system-wide default message is used.
Example:
MaxClients 5 &quot;Sorry, the maximum number of allowed users are already 
connected (%m)&quot;
Results in:
530 Sorry, the maximum number of allowed users are already connected 
(5)</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="MaxClientsPerHost">
<?dbhtml filename="config_ref_MaxClientsPerHost.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>MaxClientsPerHost</primary></indexterm>
MaxClientsPerHost
</refentrytitle>
</refmeta>
<refnamediv>
<refname>MaxClientsPerHost</refname>
<refpurpose>Limits the connections per client machine</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>MaxClientsPerHost</command>
<arg choice="opt">
  <option>MaxClientsPerHost number|none [message]</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
MaxClientsPerHost none
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Anonymous&gt;, &lt;VirtualHost&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.1.7 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The MaxClientsPerHost directive configures the maximum number of clients 
allowed to connect per host. The optional argument message 
may be used which will be displayed to a client attempting to exceed the maximum 
value. If message is not supplied, a default message of
"Sorry, the maximum number clients (%m) from your host are already connected."
is used. </para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
MaxClients, MaxHostsPerUser
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<programlisting>
MaxClientsPerHost 1 &quot;Sorry, you may not connect more than one time.&quot;
Results in: 530 Sorry, you may not connect more than one time.
</programlisting>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="MaxHostsPerUser">
<?dbhtml filename="config_ref_MaxHostsPerUser.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>MaxHostsPerUser</primary></indexterm>
MaxHostsPerUser
</refentrytitle>
</refmeta>
<refnamediv>
<refname>MaxHostsPerUser</refname>
<refpurpose>Limit the number of connections per userid</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>MaxHostsPerUser</command>
<arg choice="opt">
  <option>MaxHostsPerUser number|none [message]</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
MaxHostsPerUser none
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Anonymous&gt;, &lt;VirtualHost&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.4 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The MaxHostsPerUser directive configures the maximum number of times
any given login can connection at any given time.  The optional argument
message may be used which will be displayed to a client attempting
to exceed the maximum value. If message is not supplied, a default
message of "Sorry, the maximum number of hosts (%m) for this user
already connected."</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<link linkend="MaxClients">MaxClients</link>,
<link linkend="MaxClientsPerHost">MaxClientsPerHost</link>
<!--
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<programlisting>
MaxHostsPerUser 1 &quot;Sorry, you may not connect more than one time.&quot;
Results in: 530 Sorry, you may not connect more than one time.
</programlisting>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="MaxInstances">
<?dbhtml filename="config_ref_MaxInstances.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>MaxInstances</primary></indexterm>
MaxInstances
</refentrytitle>
</refmeta>
<refnamediv>
<refname>MaxInstances</refname>
<refpurpose>Sets the maximum number of child processes to be spawned</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>MaxInstances</command>
<arg choice="opt">
  <option>MaxInstances number</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
MaxInstances none
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.1.6pl1
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The MaxInstances directive configures the maximum number of child processes 
that may be spawned by a parent proftpd process in standalone 
mode. The directive has no effect when used on a server running in inetd 
mode.
Because each child proftpd process represents a single client connection, 
this directive also controls the maximum number of simultaneous connections 
allowed. Additional connections beyond the configured limit are syslog'd and 
silently disconnected. The MaxInstances directive can be used to prevent undesirable 
denial-of-service attacks (repeatedly connecting to the ftp port, causing 
proftpd to fork-bomb). By default, no limit is placed on the number of child 
processes that may run at one time.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="MaxLoginAttempts">
<?dbhtml filename="config_ref_MaxLoginAttempts.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>MaxLoginAttempts</primary></indexterm>
MaxLoginAttempts
</refentrytitle>
</refmeta>
<refnamediv>
<refname>MaxLoginAttempts</refname>
<refpurpose>Sets how many password attempts are allowed before disconnection</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>MaxLoginAttempts</command>
<arg choice="opt">
  <option>MaxLoginAttempts number</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
MaxLoginAttempts 3
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The MaxLoginAttempts directive configures the maximum number of times a client 
may attempt to authenticate to the server during a given connection. After 
the number of attempts exceeds this value, the user is disconnected and an 
appropriate message is logged via the syslog mechanism.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="MultilineRFC2228">
<?dbhtml filename="config_ref_MultilineRFC2228.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>MultilineRFC2228</primary></indexterm>
MultilineRFC2228
</refentrytitle>
</refmeta>
<refnamediv>
<refname>MultilineRFC2228</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>MultilineRFC2228</command>
<arg choice="opt">
  <option>MultilineRFC2228 on|off</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
MultilineRFC2228 off
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0pre3 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
By default, proftpd sends multiline responses as per RFC 959, i.e.: 
200-First line
More lines...
200 Last line
RFC 2228 specifies that "6xy" 
response codes will be sent as follows: 
600-First line
600-More lines...
600 Last line
Note that 2228 ONLY specifies this for response codes starting with 
'6'. Enabling this directive causes ALL responses to be sent in this 
format, which may be more compatible with certain web browsers and clients. 
Also note that this is NOT the same as wu-ftpd's multiline responses, 
which do not comply with any RFC. Using this method of multilines is more likely 
to be compatible with all clients, although it isn't strictly RFC, and is thus 
not enabled by default.</para> 
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="MySQLInfo">
<?dbhtml filename="config_ref_MySQLInfo.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>MySQLInfo</primary></indexterm>
MySQLInfo
</refentrytitle>
</refmeta>
<refnamediv>
<refname>MySQLInfo</refname>
<refpurpose>Configures the MySQL driver</refpurpose>
</refnamediv>

<refsynopsisdiv>

<cmdsynopsis>
<command>MySQLInfo</command>
<arg choice="opt">
  <option>hostname</option>
</arg>
<arg choice="opt">
  <option>sqluser</option>
</arg>
<arg choice="opt">
  <option>sqlpass</option>
</arg>
<arg choice="opt">
  <option>dbname</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
none
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0rc2 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>

<para>This directive is deprecated as of 1.2.0.  Please use
SQLConnectInfo instead.</para>

<para>Configures the MySQL database driver (the database may be
remote).  A connection isn't made until use of a SQL feature requires
it, after which it may be held open for the lifetime of the FTP
session depending on the directives in use.  Use `""' to specify a
null password.</para>

</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="Order">
<?dbhtml filename="config_ref_Order.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>Order</primary></indexterm>
Order
</refentrytitle>
</refmeta>
<refnamediv>
<refname>Order</refname>
<refpurpose>Configures the precedence of the Limit directives</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>Order</command>
<arg choice="opt">
  <option>Order allow,deny|deny,allow</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
Order allow,deny
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
&lt;Limit&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0pl6 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The Order directive configures the order in which Allow and Deny directives are checked inside of a &lt;Limit&gt; block. Because Allow directives are permissive, and Deny directives restrictive, the order in which they are examined can significantly alter the way security functions.  If the default setting of allow,deny is used, &quot;allowed&quot; access permissions are checked first. If an Allow directive explicitly allows access to the &lt;Limit&gt; context, access is granted and any Deny directives are never checked. If Allow did not explicitly permit access, Deny directives are checked. If any Deny directive applies, access is explicitly denied. Otherwise, access is granted.  When deny,allow is used, &quot;deny&quot; access 
restrictions are checked first. If any restriction applies, access is denied 
immediately. If nothing is denied, Allow permissions 
are checked. If an Allow explicitly permits access, access 
to the entire context is permitted; otherwise access is implicitly denied.
For clarification, the following illustrates the steps used when checking 
Allow/Deny access:
Order allow,deny
Check Allow directives. If one or more apply, exit with result: ALLOW
Check Deny directives. If one or more apply, exit with result: DENY
Exit with default implicit ALLOW
Order deny,allow
Check Deny directives. If one or more apply, exit with result: DENY
Check Allow directives. If one or more apply, exit with result: ALLOW
Exit with default implicit: DENY</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="PassivePorts">
<?dbhtml filename="config_ref_PassivePorts.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>PassivePorts</primary></indexterm>
PassivePorts
</refentrytitle>
</refmeta>
<refnamediv>
<refname>PassivePorts</refname>
<refpurpose>Specify the ftp-data port range to be used</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>PassivePorts</command>
<arg choice="opt">
  <option>PassivePorts min-pasv-port max-pasv-port</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0rc2 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>

<para>PassivePorts restricts the range of ports from which the server
will select when sent the PASV command from a client.  The server will
randomly choose a number from within the specified range until an open
port is found.  Should no open ports be found within the given range,
the server will default to a normal kernel-assigned port, and a
message logged.</para>

<para>The port range selected must be in the non-privileged range
(eg. greater than or equal to 1024); it is STRONGLY
RECOMMENDED that the chosen range be large enough to handle many
simultaneous passive connections (for example, 49152-65534, the
IANA-registered ephemeral port range).</para>

</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<programlisting>
# Use the IANA registered ephemeral port range
PassivePorts 49152 65534
</programlisting>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="PathAllowFilter">
<?dbhtml filename="config_ref_PathAllowFilter.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>PathAllowFilter</primary></indexterm>
PathAllowFilter
</refentrytitle>
</refmeta>
<refnamediv>
<refname>PathAllowFilter</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>PathAllowFilter</command>
<arg choice="opt">
  <option>PathAllowFilter regular-expression</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.1.7 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
PathAllowFilter allows the configuration of a regular expression that must 
be matched for all newly uploaded (stored) files. The regular expression is 
applied against the entire pathname specified by the client, so care must 
be taken when creating a proper regex. Paths that fail the regex match result 
in a "Forbidden filename" error being returned to the client.
If the regular-expression argument contains whitespace, 
it must be enclosed in quotes.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<programlisting>
# Only allow a-z 0-9 . - _ in file names,
PathAllowFilter ^[a-z0-9._-]+$

# as above but with upper case characters as well
PathAllowFilter ^[A-Za-z0-9._-]+$
</programlisting>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="PathDenyFilter">
<?dbhtml filename="config_ref_PathDenyFilter.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>PathDenyFilter</primary></indexterm>
PathDenyFilter
</refentrytitle>
</refmeta>
<refnamediv>
<refname>PathDenyFilter</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>PathDenyFilter</command>
<arg choice="opt">
  <option>PathDenyFilter regular-expression</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.1.7 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
Similar to PathAllowFilter, PathDenyFilter 
specifies a regular expression which must not match any uploaded 
pathnames. If the regex does match, a "Forbidden filename" error is returned 
to the client. This can be especially useful for forbidding .ftpaccess or 
.htaccess files.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<programlisting>
# We don't want .ftpaccess or .htaccess files to be uploaded
PathDenyFilter &quot;(\\.ftpaccess)|(\\.htaccess)$&quot;
</programlisting>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="PersistentPasswd">
<?dbhtml filename="config_ref_PersistentPasswd.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_unixpw
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>PersistentPasswd</primary></indexterm>
PersistentPasswd
</refentrytitle>
</refmeta>
<refnamediv>
<refname>PersistentPasswd</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>PersistentPasswd</command>
<arg choice="opt">
  <option>PersistentPasswd on|off</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
Platform dependent
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_unixpw
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.1.5 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The PersistentPasswd directive controls how proftpd handles authentication, 
user/group lookups, and user/group to name mapping. If set to On, proftpd 
will attempt to open the system-wide /etc/passwd, /etc/group (and /etc/shadow, 
potentially) files itself, holding them open even during a chroot()ed login 
(note that /etc/shadow is never held open, for security reasons). On some 
platforms, you must turn this option on, as the libc functions are incapable 
of accessing these databases from inside of a chroot(). At configure-time, 
the configuration script will attempt to detect whether or not you need this 
support, and make it the default. However, such &quot;guessing&quot; may fail, 
and you will have to manually enable or disable the feature. If you cannot 
see user or group names when performing a directory listing inside an anonymous 
chrooted login, this indicates you must enable the directive. Use of the AuthUserFile 
or 
AuthGroupFile directives will force partial support 
for persistent user or group database files; regardless of PersistentPasswd's 
setting.
</para>

<para>
Note: NIS or NIS+ users will most likely want to disable this feature,
regardless of proftpd's detected configuration defaults. Failure to disable
this will make your NIS/NIS+ maps not work! On certain systems, you may also
need to compile ProFTPD with the --enable-autoshadow option in order to
authenticate both users from NIS maps and local users.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="PidFile">
<?dbhtml filename="config_ref_PidFile.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>PidFile</primary></indexterm>
PidFile
</refentrytitle>
</refmeta>
<refnamediv>
<refname>PidFile</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>PidFile</command>
<arg choice="opt">
  <option>PidFile filename</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
none
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0rc2 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The PidFile directive sets the file to which the server records
the process id of the daemon. The filename should be relative to the
system root, ie /var/run/proftpd/pidfile. The PidFile is only used
in standalone mode.
It is often useful to be able to send the server a signal, so
that it closes and then reopens its ErrorLog and TransferLog, and
re-reads its configuration files. This is done by sending a SIGHUP
(kill -1) signal to the process id of the master daemon listed in
the PidFile.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="Port">
<?dbhtml filename="config_ref_Port.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>Port</primary></indexterm>
Port
</refentrytitle>
</refmeta>
<refnamediv>
<refname>Port</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>Port</command>
<arg choice="opt">
  <option>Port port-number</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
Port 21
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The Port directive configures the TCP port which proftpd will listen on while 
running in standalone mode. It has no effect when used upon a server running in
inetd mode (see ServerType).  The directive can be used in conjunction with
&lt;VirtualHost&gt; in order to run a virtual server on the same IP address
as the master server, but listening on a different port.
</para>

<para>
For any server, either &lt;VirtualHost&gt; or server config, setting
Port 0 effectively turns off that server.
</para>

</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="PostgresInfo">
<?dbhtml filename="config_ref_PostgresInfo.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>PostgresInfo</primary></indexterm>
PostgresInfo
</refentrytitle>
</refmeta>
<refnamediv>
<refname>PostgresInfo</refname>
<refpurpose>Postgres backend configuration (Deprecated)</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>PostgresInfo</command>
<arg choice="opt">
  <option>hostname</option>
</arg>
<arg choice="opt">
  <option>[sqluser</option>
</arg>
<arg choice="opt">
  <option>sqlpass]</option>
</arg>
<arg choice="opt">
  <option>dbname</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
none
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0rc2 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>

<para>This directive is deprecated, please use SQLConnectInfo
instead.</para> 

<para>Configures the Posgresql database driver (the database may be
remote).  A connection isn't made until use of a SQL feature requires
it, after which it may be held open for the lifetime of the FTP
session depending on the directives in use.</para>

</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>

<literallayout>
PostgresInfo myserver.example.com proftpd wibble ftpusers
</literallayout>

<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="PostgresPort">
<?dbhtml filename="config_ref_PostgresPort.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>PostgresPort</primary></indexterm>
PostgresPort
</refentrytitle>
</refmeta>
<refnamediv>
<refname>PostgresPort</refname>
<refpurpose>Sets the port postgres is listening on</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>PostgresPort</command>
<arg choice="opt">
  <option>portnumber</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
5432
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0rc2 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>

<para>This directive is deprecated, please use SQLConnectInfo
instead</para> 

<para>
Specifies which TCP/IP port to use for connecting.  Default is 5432,
or UNIX socket for localhost.
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<literallayout>
PostgresPort 3306
</Literallayout>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="QuotaBlockName">
<?dbhtml filename="config_ref_QuotaBlockName.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_quota
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>QuotaBlockName</primary></indexterm>
QuotaBlockName
</refentrytitle>
</refmeta>
<refnamediv>
<refname>QuotaBlockName</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>QuotaBlockName</command>
<arg choice="opt">
  <option>QuotaBlockName name</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
byte
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server, &lt;VirtualHost&gt;, &lt;Anonymous&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_quota
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
at least 1.2.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The QuotaBlockName directive is used in conjunction with the QuotaBlockSize directive to control user
output from the module.  This directive specifies the name given to
the values displayed (ie byte, kilobyte, kb etc etc).  
Example:
QuotaBlockName kb</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="QuotaBlockSize">
<?dbhtml filename="config_ref_QuotaBlockSize.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_quota
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>QuotaBlockSize</primary></indexterm>
QuotaBlockSize
</refentrytitle>
</refmeta>
<refnamediv>
<refname>QuotaBlockSize</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>QuotaBlockSize</command>
<arg choice="opt">
  <option>QuotaBlockSize number of bytes</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server, &lt;VirtualHost&gt;, &lt;Anonymous&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_quota
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
at least 1.2.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The QuotaBlockSize directive is used in conjuntion with the QuotaBlockName directive to control how
the user output is handled.  QuotaBlockSize specifies the factor by
which the values in the user reports are divided before display.
Example:
QuotaBlockSize 1024</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="QuotaCalc">
<?dbhtml filename="config_ref_QuotaCalc.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_quota
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>QuotaCalc</primary></indexterm>
QuotaCalc
</refentrytitle>
</refmeta>
<refnamediv>
<refname>QuotaCalc</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>QuotaCalc</command>
<arg choice="opt">
  <option>QuotaCalc foo1 foo2 foo3</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server, &lt;VirtualHost&gt;, &lt;Anonymous&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_quota
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
at least 1.2.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The QuotaCalc directive controls whether calculation is done on
the fly.  If the directive is set to 'on' and either there is no
.quota file or the quota would go negative then calculation is done
on the fly rather than at the end of the session.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="QuotaExempt">
<?dbhtml filename="config_ref_QuotaExempt.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_quota
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>QuotaExempt</primary></indexterm>
QuotaExempt
</refentrytitle>
</refmeta>
<refnamediv>
<refname>QuotaExempt</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>QuotaExempt</command>
<arg choice="opt">
  <option>QuotaExempt uid, uid, uid</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server, &lt;VirtualHost&gt;, &lt;Anonymous&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_quota
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
at least 1.2.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The QuotaExempt directive lists the UIDs which are not subject to
quota controls, using UIDs rather than symbolic user names speeds up
the loading and resolution process.
Example:
QuotaExempt 3000,3401,500</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="QuotaType">
<?dbhtml filename="config_ref_QuotaType.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_quota
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>QuotaType</primary></indexterm>
QuotaType
</refentrytitle>
</refmeta>
<refnamediv>
<refname>QuotaType</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>QuotaType</command>
<arg choice="opt">
  <option>QuotaType soft|hard</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
soft
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server, &lt;VirtualHost&gt;, &lt;Anonymous&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_quota
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
at least 1.2.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The QuotaType directive defines what happens to files which break 
the quota limits as they are uploaded.  Setting the type to hard
ensures that the file which violates the quota is deleted.
uploaded.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="Quotas">
<?dbhtml filename="config_ref_Quotas.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_quota
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>Quotas</primary></indexterm>
Quotas
</refentrytitle>
</refmeta>
<refnamediv>
<refname>Quotas</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>Quotas</command>
<arg choice="opt">
  <option>Quotas on|off</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
none
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server, &lt;VirtualHost&gt;, &lt;Anonymous&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_quota
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
at least 1.2.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The Quotas directive enables or disables Quota support.
Example:
Quotas on</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="RLimitCPU">
<?dbhtml filename="config_ref_RLimitCPU.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>RLimitCPU</primary></indexterm>
RLimitCPU
</refentrytitle>
</refmeta>
<refnamediv>
<refname>RLimitCPU</refname>
<refpurpose>Configure the maximum CPU time in seconds used by a process</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>RLimitCPU</command>
<arg choice="opt">
  <option>RLimitCPU soft-limit|"max" [hard-limit|"max"]</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>
<!--
</refsynopsisdiv>
-->

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
System defaults
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.1rc1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
RLimitCPU takes 1 or 2 parameters. The first parameter sets the soft resource
limit for all proftpd processes. The optional second parameter sets the
maximum resource limit. Either parameter can be a number, or max to
indicate to the server that the limit should be set to the maximum allowed
by the operating system configuration.
</para>

<para>
CPU resource limits are expressed in seconds per process.
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<link linkend="RLimitMemory">RLimitMemory</link>, 
<link linkend="RLimitOpenFiles">RLimitOpenFiles</link>
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para></para>
</refsect1>

</refentry>

<refentry id="RLimitMemory">
<?dbhtml filename="config_ref_RLimitMemory.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>RLimitMemory</primary></indexterm>
RLimitMemory
</refentrytitle>
</refmeta>
<refnamediv>
<refname>RLimitMemory</refname>
<refpurpose>Configure the maximum memory in bytes used by a process</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>RLimitMemory</command>
<arg choice="opt">
  <option>RLimitMemory soft-limit[units]|"max" [hard-limit[units]|"max"]</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>


<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.1rc1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
RLimitMemory takes 1 or 2 parameters. The first parameter sets the soft resource
limit for all proftpd processes. The optional second parameter sets the
maximum resource limit. Either parameter can be a number, or max to
indicate to the server that the limit should be set to the maximum allowed
by the operating system configuration.
</para>

<para>
Memory resource limits are expressed in bytes per process.  An optional
case-insensitive units specifier may follow the number of bytes given:
G (Gigabytes), M (Megabytes), K (Kilobytes), or B (bytes).  If the units
specifier is used, the given number of bytes is multiplied by the appropriate
factor.
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
RLimitCPU, RLimitMaxProcesses, RLimitOpenFiles
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

</refentry>

<refentry id="RLimitOpenFiles">
<?dbhtml filename="config_ref_RLimitOpenFiles.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>RLimitOpenFiles</primary></indexterm>
RLimitOpenFiles
</refentrytitle>
</refmeta>
<refnamediv>
<refname>RLimitOpenFiles</refname>
<refpurpose>Configure the maximum number of open files used by a process</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>RLimitOpenFiles</command>
<arg choice="opt">
  <option>RLimitOpenFiles soft-limit|"max" [hard-limit|"max"]</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>


<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.1rc1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
RLimitOpenFiles takes 1 or 2 parameters. The first parameter sets the soft
resource limit for all proftpd processes. The optional second parameter sets
the maximum resource limit. Either parameter can be a number, or max to
indicate to the server that the limit should be set to the maximum allowed
by the operating system configuration.
</para>

<para>
File resource limits are expressed in number of files per process.
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
RLimitCPU, RLimitMaxProcesses, RLimitMemory
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

</refentry>

<refentry id="RateReadBPS">
<?dbhtml filename="config_ref_RateReadBPS.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_xfer
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>RateReadBPS</primary></indexterm>
RateReadBPS
</refentrytitle>
</refmeta>
<refnamediv>
<refname>RateReadBPS</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>RateReadBPS</command>
<arg choice="opt">
  <option>RateReadBPS byte_per_sec-number</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
0
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Directory&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_xfer
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
RateReadBPS sets the allowed byte per second download bandwidth in the given 
config context. Zero means no bandwidth limit. (See RateReadFreeBytes 
about limiting bandwidth only after some amount of downloaded bytes.) The 
usual place for this directive is in &lt;VirtualHost&gt; or  &lt;Directory&gt; sections. </para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="RateReadFreeBytes">
<?dbhtml filename="config_ref_RateReadFreeBytes.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_xfer
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>RateReadFreeBytes</primary></indexterm>
RateReadFreeBytes
</refentrytitle>
</refmeta>
<refnamediv>
<refname>RateReadFreeBytes</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>RateReadFreeBytes</command>
<arg choice="opt">
  <option>RateReadFreeBytes number of bytes</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
0
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Directory&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_xfer
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
RateReadFreeBytes is the amount of bytes to be transferred without any bandwidth 
limits, so with that option you can give full bandwidth for small files 
while limiting big ones. (See RateReadHardBPS 
on further info about what happens after the free amount was transferred.) </para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="RateReadHardBPS">
<?dbhtml filename="config_ref_RateReadHardBPS.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_xfer
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>RateReadHardBPS</primary></indexterm>
RateReadHardBPS
</refentrytitle>
</refmeta>
<refnamediv>
<refname>RateReadHardBPS</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>RateReadHardBPS</command>
<arg choice="opt">
  <option>RateReadHardBPS on/off</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
off
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Directory&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_xfer
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
RateReadHardBPS forces the bandwidth to the given RateReadBPS 
value after the RateReadFreeBytes amount 
of file was transfered. This means that if the user have huge bandwidth and 
downloaded the "free" amount fast, HardBPS will stop the transfer until the 
average goes down to the given limit. If the amount of FreeBytes is high and 
the ReadBPS is low then the user may wait for extended periods of time until 
the transfer continues. :-)</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="RateWriteBPS">
<?dbhtml filename="config_ref_RateWriteBPS.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_xfer
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>RateWriteBPS</primary></indexterm>
RateWriteBPS
</refentrytitle>
</refmeta>
<refnamediv>
<refname>RateWriteBPS</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>RateWriteBPS</command>
<arg choice="opt">
  <option>RateWriteBPS byte_per_sec-number</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
0
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Directory&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_xfer
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
RateWriteBPS sets the allowed byte per second upload bandwidth
in the given config context. Zero means no bandwidth limit. (See
RateWriteFreeBytes about limiting bandwidth only after some amount
of uploaded bytes.) The usual place for this directive is in
&lt;VirtualHost&gt; or &lt;Directory&gt; sections.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="RateWriteFreeBytes">
<?dbhtml filename="config_ref_RateWriteFreeBytes.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_xfer
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>RateWriteFreeBytes</primary></indexterm>
RateWriteFreeBytes
</refentrytitle>
</refmeta>
<refnamediv>
<refname>RateWriteFreeBytes</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>RateWriteFreeBytes</command>
<arg choice="opt">
  <option>RateWriteFreeBytes number of bytes</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
0
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Directory&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_xfer
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
RateWriteFreeBytes is the amount of bytes to be transferred without any bandwidth 
limits, so with that option you can give full bandwidth for small files 
while limiting big ones. (See RateWriteHardBPS 
on further info about what happens after the free amount was transferred.) </para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="RateWriteHardBPS">
<?dbhtml filename="config_ref_RateWriteHardBPS.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_xfer
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>RateWriteHardBPS</primary></indexterm>
RateWriteHardBPS
</refentrytitle>
</refmeta>
<refnamediv>
<refname>RateWriteHardBPS</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>RateWriteHardBPS</command>
<arg choice="opt">
  <option>RateWriteHardBPS on/off</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
off
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Directory&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_xfer
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
RateWriteHardBPS forces the bandwidth to the given RateWriteBPS 
value after the RateWriteFreeBytes amount 
of file was transfered. This means that if the user have huge bandwidth and 
uploaded the "free" amount fast, HardBPS will stop the transfer until the 
average goes down to the given limit. If the amount of FreeBytes is high and 
the WriteBPS is low then the user may wait for extended periods of time until 
the transfer continues. :-)
RateWriteHardBPS
RatioFile (mod_ratio) Incomplete
Ratios (mod_ratio) Incomplete
RatioTempFile (mod_ratio) Incomplete</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="RatioFile">
<?dbhtml filename="config_ref_RatioFile.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_ratio
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>RatioFile</primary></indexterm>
RatioFile
</refentrytitle>
</refmeta>
<refnamediv>
<refname>RatioFile</refname>
<refpurpose>Ratio directive</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>RatioFile</command>
<arg choice="opt">
  <option>RatioFile foo1 foo2 foo3</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None known
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
&lt;Directory&gt;, &lt;Anonymous&gt;, &lt;Limit&gt;,.ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_ratio
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
at least 1.2.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The RatioFile directive ....
Example:
RatioFile</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="RatioTempFile">
<?dbhtml filename="config_ref_RatioTempFile.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_ratio
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>RatioTempFile</primary></indexterm>
RatioTempFile
</refentrytitle>
</refmeta>
<refnamediv>
<refname>RatioTempFile</refname>
<refpurpose>Ratio directive</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>RatioTempFile</command>
<arg choice="opt">
  <option>RatioTempFile foo1 foo2 foo3</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None known
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
&lt;Directory&gt;, &lt;Anonymous&gt;, &lt;Limit&gt;,.ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_ratio
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
at least 1.2.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The RatioTempFile directive ....
Example:
RatioTempFile</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="Ratios">
<?dbhtml filename="config_ref_Ratios.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_ratio
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>Ratios</primary></indexterm>
Ratios
</refentrytitle>
</refmeta>
<refnamediv>
<refname>Ratios</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>Ratios</command>
<arg choice="opt">
  <option>Ratios foo1 foo2 foo3</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None known
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
&lt;Directory&gt;, &lt;Anonymous&gt;, &lt;Limit&gt;,.ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_ratio
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
at least 1.2.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The Ratios directive ....
Example:
Ratios</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="RequireValidShell">
<?dbhtml filename="config_ref_RequireValidShell.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>RequireValidShell</primary></indexterm>
RequireValidShell
</refentrytitle>
</refmeta>
<refnamediv>
<refname>RequireValidShell</refname>
<refpurpose>Allow connections based on /etc/shells</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>RequireValidShell</command>
<arg choice="opt">
  <option>RequireValidShell on|off</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
RequireValidShell on
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The RequireValidShell directive configures the server, virtual host or anonymous 
login to allow or deny logins which do not have a shell binary listed in /etc/shells. 
By default, proftpd disallows logins if the user's default shell is not listed 
in /etc/shells. If /etc/shells cannot be found, all default shells are assumed 
to be valid.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="RootLogin">
<?dbhtml filename="config_ref_RootLogin.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_auth
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>RootLogin</primary></indexterm>
RootLogin
</refentrytitle>
</refmeta>
<refnamediv>
<refname>RootLogin</refname>
<refpurpose>Permit root user logins</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>RootLogin</command>
<arg choice="opt">
  <option>RootLogin on|off</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
RootLogin off
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_auth
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.1.5 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
Normally, proftpd disallows root logins under any circumstance. If a client 
attempts to login as root, using the correct password, a special security 
message is sent to syslog. When the RootLogin directive is turned On, the 
root user may authenticate just as any other user could (assuming no other 
access control measures deny access); however the root login security message 
is still sysloged. Obviously, extreme 
care should be taken when using this directive.
</para>

<para>The use of RootLogin in the Anonymous context is only valid when the User / Group defined in the Anonymous block is set to 'root'
</para>

</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="SQLAuthTypes">
<?dbhtml filename="config_ref_SQLAuthTypes.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLAuthTypes</primary></indexterm>
SQLAuthTypes
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLAuthTypes</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLAuthTypes</command>
<arg choice="opt">
  <option>[OpenSSL]</option>
</arg>
<arg choice="opt">
  <option>[Crypt]</option>
</arg>
<arg choice="opt">
  <option>[Backend]</option>
</arg>
<arg choice="opt">
  <option>[Plaintext]</option>
</arg>
<arg choice="opt">
  <option>[Empty]</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
none
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
This directive deprecates 'SQLEmptyPasswords',
'SQLScrambledPasswords', 'SQLSSLHashedPasswords',
'SQLPlaintextPasswords', and 'SQLEncryptedPasswords'.

Specifies the allowed authentication types and their check order.  YOU
MUST SPECIFY AT LEAST ONE AUTHENTICATION METHOD.  

For example:

SQLAuthTypes Crypt Empty

means check whether the password in the database matches in UNIX
crypt() format; if that fails, check to see if the password in the
database is empty (matching ANY given password); if that fails,
mod_sql refuses to authenticate the user.

Current Types

Plaintext: allows passwords in the database to be in plaintext

OpenSSL:   allows passwords in the database to be of the form
	   '{digestname}hashedvalue'.  This check is only available if
	   you define 'HAVE_OPENSSL' when you compile proftd and you
	   link with the OpenSSL 'crypto' library. 

Crypt:     allows passwords in the database to be in UNIX crypt() form

Backend:   a database-specific backend check function.  Not all
	   backends support this.  Specifically, the MySQL backend
	   uses this type to authenticate MySQL 'PASSWORD()' encrypted
	   passwords.  The Postgres backend does nothing.

Empty:     allows empty passwords in the database, which match against
	   ANYTHING the user types in.  The database field must be a
	   truly empty string -- that is, NULL values are never
	   accepted.  BE VERY CAREFUL WITH THIS AUTHTYPE.
</para>
</refsect1>

</refentry>

<refentry id="SQLAuthenticate">
<?dbhtml filename="config_ref_SQLAuthenticate.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>

<refmeta>
  <refentrytitle>
    <indexterm><primary>SQLAuthenticate</primary></indexterm>
    SQLAuthenticate
  </refentrytitle>
</refmeta>

<refnamediv>
  <refname>SQLAuthenticate</refname>
  <refpurpose>
    Specify authentication methods and what to authenticate 
  </refpurpose>
</refnamediv>

<refsynopsisdiv>
  <cmdsynopsis>
    <command>SQLAuthenticate</command>
    <group choice="req">
      <arg>on</arg>
      <arg>off</arg>
    </group>
  </cmdsynopsis>

  <para>&nbsp;&nbsp;or</para>

  <cmdsynopsis>
    <command>SQLAuthenticate</command>
    <arg>
      users<arg>*</arg>
    </arg>
    <arg>
      group<arg>*</arg>
    </arg>
    <arg>
      userset<arg>fast</arg>
    </arg>
    <arg>
      groupset<arg>fast</arg>
    </arg>
  </cmdsynopsis>
 
  <variablelist><title></title>
    <varlistentry><term><synopsis>Default</synopsis></term>
      <listitem>
        <para>
          SQLAuthenticate <computeroutput>on</computeroutput> 
        </para> 
      </listitem>
    </varlistentry>

    <varlistentry><term><synopsis>Context</synopsis></term>
      <listitem> 
        <para>
          server config, &lt;Global&gt;, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Limit&gt;, .ftpaccess
        </para> 
      </listitem>
    </varlistentry>

    <varlistentry><term><synopsis>Module</synopsis></term>
      <listitem> 
        <para>
          mod_sql
        </para> 
      </listitem>
    </varlistentry>

    <varlistentry><term><synopsis>Compatibility</synopsis></term>
      <listitem> 
        <para>
          1.2.5rc1 and later
        </para> 
      </listitem>
    </varlistentry>
  </variablelist>
</refsynopsisdiv>

<refsect1>
  <title>Description</title>
    <para>The SQLAuthenticate directive controls the behavior of mod_sql 
regarding the authentication process.  SQLAuthenticate can provide fine grained 
control over authentication of logins and file access for both users and groups. 
  Using this directive, mod_sql can be configured to be the authoritative 
authentication mechanism - in that case, mod_sql provides authentication and all
 other authentication mechanisms will be bypassed.</para>
    <para>The syntax for SQLAuthenticate can take one of two possible formats.  
The simplest syntax is a simple <computeroutput>on | off</computeroutput> format:

    <variablelist><title></title>
      <varlistentry><term>on</term>
        <listitem>
          <para>mod_sql will perform login authentication and will also control 
file access using both user ID and group ID.  This is equivalent to the 
following alternative syntax:
            <blockquote>
              <para><computeroutput>
                SQLAuthenticate users groups userset groupset
              </computeroutput></para>
            </blockquote>
          </para>
        </listitem>
      </varlistentry>
      <varlistentry><term>off</term>
        <listitem>
          <para>mod_sql will not perform user or group lookups nor will it 
control file access or functionality.
          </para>
        </listitem>
      </varlistentry>
    </variablelist>
    </para>

    <para>A more complex syntax is provided to provide finer control of the 
behavior of mod_sql.  Two features in particular may be controlled via this 
syntax:
      <itemizedlist>
        <listitem>
          <para>
          Authorititative lookups and authentication</para>
        </listitem>
        <listitem>
	      <para>
          File access or functionality control based on UID or GID</para>
        </listitem>
      </itemizedlist>
      The following command options are used to control these features.  Note 
that each of these options may be listed in any order.
    </para>

    <variablelist><title></title>
      <varlistentry><term>users[*]</term>
        <listitem>
          <para>If this option is present, user lookups will take place.  
Appending an asterisk to <computeroutput>users</computeroutput> will cause 
mod_sql to become authoritiative for user lookups.  All other user 
authentication methods will be ignored.  If this option is not included, mod_sql
 will not perform any user lookups.
          </para>
        </listitem>
      </varlistentry>
      <varlistentry><term>groups[*]</term>
        <listitem>
          <para>If this option is present, group lookups will take place.  
Appending an asterisk to <computeroutput>groups</computeroutput> will cause 
mod_sql to become authoritiative for group lookups.  All other authentication 
methods will be ignored.  If this option is not included, mod_sql will not 
perform any group lookups.
          </para>
        </listitem>
      </varlistentry>
      <varlistentry><term>userset[fast]</term>
        <listitem>
          <para>If this option is present, mod_sql will control file access or 
functionality by processing the (get|set|end)pwent calls. These calls are used 
to determine file access rights based on username.  This option has no effect if
 the <computeroutput>user[*]</computeroutput> option is not present.</para>
          <para>If mod_sql is used to authenticate a significant number of 
users, the (set|get|end)pwent calls can become expensive.  The number of queries
 will be n+1, where n is the number of users to be looked up.  On a large 
system, this can significantly slow logins.  Using the 
<computeroutput>usersetfast</computeroutput> option will cause a single query
 to be performed to lookup all users, speeding up the login process.  The 
drawback to this option is that memory utilization will be increased. 
          </para>
        </listitem>
      </varlistentry>
      <varlistentry><term>groupset[fast]</term>
        <listitem>
          <para>If this option is present, mod_sql will control file access or 
functionality by processing the (get|set|end)grent calls. These calls are used 
to determine file access rights based on groupname.  This option has no effect 
if the <computeroutput>group[*]</computeroutput> option is not present.</para>
          <para>If mod_sql is used to authenticate a significant number of 
groups, the (set|get|end)grent calls can become expensive.  The number of 
queries will be n+1, where n is the number of groups to be looked up.  On a 
large system, this can significantly slow logins. Using the 
<computeroutput>groupsetfast</computeroutput> option will cause a single query 
to be performed to lookup all groups, speeding up the login process.  The 
drawback to this option is that memory utilization will be increased. 
          </para>
        </listitem>
      </varlistentry>
    </variablelist>

    <para>Turning off (not including) userset or groupset affects the 
functionality of mod_sql.  Not allowing these lookups may remove the ability to 
control access or control functionality by group membership, depending on your 
other auth handlers and the data available to them.  At the same time, choosing 
not to do these lookups may dramatically speed login for many large sites.
    </para>
    <para>The 'fast' suffix is not appropriate for every site.  Normally, 
mod_sql will retrieve a list of users and groups, and get information from the 
database on a per-user or per-group basis.  This is query intensive -- it 
requires (n+1) queries, where n is the number of users or groups to lookup.  By 
choosing 'fast' lookups, mod_sql will make a single SELECT query to get 
information from the database.
    </para>
    <para>In exchange for the radical reduction in the number of queries, the 
single query will increase the memory consumption of the process -- all group 
or user information will be read at once rather than in discrete chunks.
    </para>

    <para><emphasis role="bold">Note:</emphasis>If the 
<computeroutput>groupset</computeroutput> option is specified, mod_sql requires 
that the SQL group table contain only a single record for each group.  All 
members of a group must be specified in the single record.  Make sure that the 
group table is created with a sufficent column size for group members - for 
example, a MySQL group table should use type 
<computeroutput>TEXT</computeroutput> for the group members column, providing 
65535 characters for listing all of the group members in a comma-separated list.
    </para>
</refsect1>

<refsect1>
  <title>See also</title>
    <para>
      <link linkend="SQLUserTable">SQLUserTable</link>&nbsp;, 
      <link linkend="SQLGroupTable">SQLGroupTable</link>&nbsp;,
      <link linkend="SQLuserInfo">SQLUserInfo</link>&nbsp;,
      <link linkend="SQLGroupInfo">SQLGroupInfo</link>
    </para>
</refsect1>

<refsect1>
  <title>Examples</title>
    <para>If user and group lookups are desired, but other means will be used to
 perform file access control, and the user/group lookups are not to be 
authoritatuve, the following directive syntax is appropriate.  This is not a 
particuarly interesting configuration.</para>
    <blockquote>
      <para>
        <computeroutput>SQLAuthenticate users groups</computeroutput>
      </para>
    </blockquote>

    <para>A more interesting configuration for mod_sql is shown below.  In this 
configuration, mod_sql is authoritative for both users and groups, and also 
performs access control based on both user name and group membership.  Utilizing
 a configuration such as this removes the need to provide a shell account for 
users on the server, while still providing &quot;non-anonymous&quot; ftp access with 
access control. The &quot;fast&quot; option is also used to speed up logins, at the 
expense of increased memory utilization.</para>

    <blockquote>
      <para>
        <computeroutput>
          SQLAuthenticate users* groups* usersetfast groupsetfast
        </computeroutput> 
      </para>
    </blockquote>
</refsect1>
</refentry>

<refentry id="SQLAuthoritative">
<?dbhtml filename="config_ref_SQLAuthoritative.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLAuthoritative</primary></indexterm>
SQLAuthoritative
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLAuthoritative</refname>
<refpurpose>FIXFIXFIX</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLAuthoritative</command>
<arg choice="opt">
  <option>"name" limit|regex|ip value</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>
 
<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
FIXFIXFIX
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Limit&gt;, .ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.5rc1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
FIX FIX FIX
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>

<literallayout>
FIXFIXFIX
</literallayout>

<para>
FIXFIX
</para>

</refsect1>
</refentry>

<refentry id="SQLConnectInfo">
<?dbhtml filename="config_ref_SQLConnectInfo.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLConnectInfo</primary></indexterm>
SQLConnectInfo
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLConnectInfo</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLConnectInfo</command>
<arg choice="opt">
  <option>connection-info</option>
</arg>
<arg choice="opt">
  <option>[username]</option>
</arg>
<arg choice="opt">
  <option>[password]</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
none
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
This directive deprecates 'MySQLInfo', 'PostgresInfo', and
'PostgresPort'.

Specifies connection information.  Connection-info specifies the
database, host, port, and other backend-specific information.
username and password specify the username and password to connect as,
respectively.  Both default to NULL, which the backend will treat in
some backend-specific manner. If you specify a password, you MUST
specify a username.

Any given backend has the opportunity (but not the responsibility) to
check for syntax errors in the connection-info field at proftpd
startup, but you shouldn't expect semantic errors (i.e., can't connect
to the database) to be caught until mod_sql attempts to connect for a
given host. 

The MySQL and Postgres backends connection-info is expected to be of
the form: 

database[@hostname][:port]

hostname will default to a backend-specific hostname (which happens to
be 'localhost' for both the MySQL and Postgres backends), and port
will default to a backend-specific default port (3306 for the MySQL
backend, 5432 for the Postgres backend).

Examples:

SQLConnectInfo  ftpusers@foo.com

means "Try connecting to the database 'ftpuser' via the default port
at 'foo.com'.  Use a NULL username and a NULL password."

SQLConnectInfo  ftpusers:3000 admin

means "Try connecting to the database 'ftpuser' via port 3000 at
'localhost'.  Use the username 'admin' and a NULL password."

SQLConnectInfo  ftpusers@foo.com:3000 admin mypassword

means "Try connecting to the database 'ftpuser' via port 3000 at
'foo.com'.  Use the username 'admin' and the password 'mypassword'"

Backends may require different information in the connection-info
field; check your backend module for specifics.
</para>
</refsect1>

</refentry>

<refentry id="SQLDefaultGID">
<?dbhtml filename="config_ref_SQLDefaultGID.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLDefaultGID</primary></indexterm>
SQLDefaultGID
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLDefaultGID</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLDefaultGID</command>
<arg choice="opt">
  <option>defaultgid</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
65533
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
Sets the default GID for users.  Must be greater than SQLMinID.
</para>
</refsect1>

</refentry>

<refentry id="SQLDefaultHomedir">
<?dbhtml filename="config_ref_SQLDefaultHomedir.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLDefaultHomedir</primary></indexterm>
SQLDefaultHomedir
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLDefaultHomedir</refname>
<refpurpose>FIXFIXFIX</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLDefaultHomedir</command>
<arg choice="opt">
  <option>"name" limit|regex|ip value</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>
 
<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
FIXFIXFIX
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Limit&gt;, .ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.5rc1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
FIX FIX FIX
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>

<literallayout>
FIXFIXFIX
</literallayout>

<para>
FIXFIX
</para>

</refsect1>
</refentry>

<refentry id="SQLDefaultUID">
<?dbhtml filename="config_ref_SQLDefaultUID.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLDefaultUID</primary></indexterm>
SQLDefaultUID
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLDefaultUID</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLDefaultUID</command>
<arg choice="opt">
  <option>defaultuid</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
65533
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
Sets the default UID for users.  Must be greater than SQLMinID.
</para>
</refsect1>

</refentry>

<refentry id="SQLDoAuth">
<?dbhtml filename="config_ref_SQLDoAuth.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLDoAuth</primary></indexterm>
SQLDoAuth
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLDoAuth</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLDoAuth</command>
<arg choice="opt">
  <option>on|off</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
on
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
Activates SQL authentication.  This overrides all other directives --
SQLDoGroupAuth and SQLAuthoritative are ineffectual if SQLDoAuth is off.
</para>
</refsect1>

</refentry>

<refentry id="SQLDoGroupAuth">
<?dbhtml filename="config_ref_SQLDoGroupAuth.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLDoGroupAuth</primary></indexterm>
SQLDoGroupAuth
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLDoGroupAuth</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLDoGroupAuth</command>
<arg choice="opt">
  <option>on|off</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
on
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>
This directive causes mod_sql to pretend it has no group information.
It necessarily breaks ALL CONFIG FILES up to 1.2.0rc2, since mod_sql
now assumes that group information is available UNLESS this directive
is set to OFF.

This DOESN'T override SQLAuthoritative -- if SQLAuthoritative is set
to 'On' but SQLDoGroupAuth is set to 'Off', all group-related queries
will fail without giving other modules the opportunity to handle them.

Prior to 1.2.0, there was no way to provide group information from the
database.  This caused a few bugs, and reduced the functionality of
this module.
</para>
</refsect1>

</refentry>

<refentry id="SQLEmptyPasswords">
<?dbhtml filename="config_ref_SQLEmptyPasswords.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLEmptyPasswords</primary></indexterm>
SQLEmptyPasswords
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLEmptyPasswords</refname>
<refpurpose>Allow zero length passwords (DEPRECATED)</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLEmptyPasswords</command>
<arg choice="opt">
  <option>on|off</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
off
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0rc2 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>

<para>This directive is deprecated, please use SQLAuthTypes instead</para>

<para>
Specifies whether an empty (non-NULL but zero-length) password is
acceped from the database.  Default is no, and truly NULL passwords
are never accepted.  If the retrieved password is empty then whatever
password the user typed is accepted as valid, but the module logs a
warning at debug level 4.</para>

</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
SQLEmptyPasswords on
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="SQLEncryptedPasswords">
<?dbhtml filename="config_ref_SQLEncryptedPasswords.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLEncryptedPasswords</primary></indexterm>
SQLEncryptedPasswords
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLEncryptedPasswords</refname>
<refpurpose>Assume SQL passwords are encrypted (DEPRECATED)</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLEncryptedPasswords</command>
<arg choice="opt">
  <option>on|off</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
on
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0rc2 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>

<para>This directive is deprecated, please SQLAuthTypes instead</para>

<para>
Specifies whether the password in the database may be in UNIX crypt()
format.  Default is true, with this being the only check done.  A tool
for generating crypted password text may be found at
ftp://ftp.linpeople.org/pub/People/lilo/source/makepasswd-1.07.tar.gz</para>

</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
SQLEncryptedPasswords on
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="SQLGidField">
<?dbhtml filename="config_ref_SQLGidField.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLGidField</primary></indexterm>
SQLGidField
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLGidField</refname>
<refpurpose>FIXFIXFIX</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLGidField</command>
<arg choice="opt">
  <option>"name" limit|regex|ip value</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>
 
<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
FIXFIXFIX
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Limit&gt;, .ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.5rc1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
FIX FIX FIX
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>

<literallayout>
FIXFIXFIX
</literallayout>

<para>
FIXFIX
</para>

</refsect1>
</refentry>

<refentry id="SQLGroupGIDField">
<?dbhtml filename="config_ref_SQLGroupGIDField.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLGroupGIDField</primary></indexterm>
SQLGroupGIDField
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLGroupGIDField</refname>
<refpurpose>FIXFIXFIX</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLGroupGIDField</command>
<arg choice="opt">
  <option>"name" limit|regex|ip value</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>
 
<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
FIXFIXFIX
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Limit&gt;, .ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.5rc1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
FIX FIX FIX
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>

<literallayout>
FIXFIXFIX
</literallayout>

<para>
FIXFIX
</para>

</refsect1>
</refentry>

<refentry id="SQLGroupInfo">
<?dbhtml filename="config_ref_SQLGroupInfo.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLGroupInfo</primary></indexterm>
SQLGroupInfo
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLGroupInfo</refname>
<refpurpose>FIXFIXFIX</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLGroupInfo</command>
<arg choice="opt">
  <option>"name" limit|regex|ip value</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>
 
<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
FIXFIXFIX
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Limit&gt;, .ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.5rc1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
FIX FIX FIX
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>

<literallayout>
FIXFIXFIX
</literallayout>

<para>
FIXFIX
</para>

</refsect1>
</refentry>

<refentry id="SQLGroupMembersField">
<?dbhtml filename="config_ref_SQLGroupMembersField.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLGroupMembersField</primary></indexterm>
SQLGroupMembersField
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLGroupMembersField</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLGroupMembersField</command>
<arg choice="opt">
  <option>fieldname</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
members
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
Specifies the field in the group table that holds the group's member
list. 
</para>
</refsect1>

</refentry>

<refentry id="SQLGroupTable">
<?dbhtml filename="config_ref_SQLGroupTable.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLGroupTable</primary></indexterm>
SQLGroupTable
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLGroupTable</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLGroupTable</command>
<arg choice="opt">
  <option>tablename</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
groups
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
Specifies the name of the table that holds group information.
</para>
</refsect1>

</refentry>

<refentry id="SQLGroupWhereClause">
<?dbhtml filename="config_ref_SQLGroupWhereClause.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLGroupWhereClause</primary></indexterm>
SQLGroupWhereClause
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLGroupWhereClause</refname>
<refpurpose>FIXFIXFIX</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLGroupWhereClause</command>
<arg choice="opt">
  <option>"name" limit|regex|ip value</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>
 
<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
FIXFIXFIX
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Limit&gt;, .ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.5rc1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
FIX FIX FIX
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>

<literallayout>
FIXFIXFIX
</literallayout>

<para>
FIXFIX
</para>

</refsect1>
</refentry>

<refentry id="SQLGroupnameField">
<?dbhtml filename="config_ref_SQLGroupnameField.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLGroupnameField</primary></indexterm>
SQLGroupnameField
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLGroupnameField</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLGroupnameField</command>
<arg choice="opt">
  <option>Syntax:	fieldname</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
groupname
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
Specifies the field in the group table that holds the group name.
</para>
</refsect1>

</refentry>

<refentry id="SQLHomedir">
<?dbhtml filename="config_ref_SQLHomedir.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLHomedir</primary></indexterm>
SQLHomedir
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLHomedir</refname>
<refpurpose>FIXFIXFIX</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLHomedir</command>
<arg choice="opt">
  <option>"name" limit|regex|ip value</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>
 
<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
FIXFIXFIX
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Limit&gt;, .ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.5rc1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
FIX FIX FIX
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>

<literallayout>
FIXFIXFIX
</literallayout>

<para>
FIXFIX
</para>

</refsect1>
</refentry>

<refentry id="SQLHomedirField">
<?dbhtml filename="config_ref_SQLHomedirField.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLHomedirField</primary></indexterm>
SQLHomedirField
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLHomedirField</refname>
<refpurpose>FIXFIXFIX</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLHomedirField</command>
<arg choice="opt">
  <option>"name" limit|regex|ip value</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>
 
<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
FIXFIXFIX
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Limit&gt;, .ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.5rc1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
FIX FIX FIX
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>

<literallayout>
FIXFIXFIX
</literallayout>

<para>
FIXFIX
</para>

</refsect1>
</refentry>

<refentry id="SQLHomedirOnDemand">
<?dbhtml filename="config_ref_SQLHomedirOnDemand.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLHomedirOnDemand</primary></indexterm>
SQLHomedirOnDemand
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLHomedirOnDemand</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLHomedirOnDemand</command>
<arg choice="opt">
  <option>on|off</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
off
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
Specifies whether to automatically create a user's home directory if
it doesn't exist at login.
</para>
</refsect1>

</refentry>

<refentry id="SQLLog">
<?dbhtml filename="config_ref_SQLLog.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLLog</primary></indexterm>
SQLLog
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLLog</refname>
<refpurpose>FIXFIXFIX</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLLog</command>
<arg choice="opt">
  <option>"name" limit|regex|ip value</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>
 
<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
FIXFIXFIX
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Limit&gt;, .ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.5rc1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
FIX FIX FIX
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>

<literallayout>
FIXFIXFIX
</literallayout>

<para>
FIXFIX
</para>

</refsect1>
</refentry>

<refentry id="SQLLogDirs">
<?dbhtml filename="config_ref_SQLLogDirs.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLLogDirs</primary></indexterm>
SQLLogDirs
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLLogDirs</refname>
<refpurpose>FIXFIXFIX</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLLogDirs</command>
<arg choice="opt">
  <option>"name" limit|regex|ip value</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>
 
<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
FIXFIXFIX
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Limit&gt;, .ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.5rc1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
FIX FIX FIX
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>

<literallayout>
FIXFIXFIX
</literallayout>

<para>
FIXFIX
</para>

</refsect1>
</refentry>

<refentry id="SQLLogHits">
<?dbhtml filename="config_ref_SQLLogHits.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLLogHits</primary></indexterm>
SQLLogHits
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLLogHits</refname>
<refpurpose>FIXFIXFIX</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLLogHits</command>
<arg choice="opt">
  <option>"name" limit|regex|ip value</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>
 
<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
FIXFIXFIX
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Limit&gt;, .ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.5rc1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
FIX FIX FIX
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>

<literallayout>
FIXFIXFIX
</literallayout>

<para>
FIXFIX
</para>

</refsect1>
</refentry>

<refentry id="SQLLogHosts">
<?dbhtml filename="config_ref_SQLLogHosts.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLLogHosts</primary></indexterm>
SQLLogHosts
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLLogHosts</refname>
<refpurpose>FIXFIXFIX</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLLogHosts</command>
<arg choice="opt">
  <option>"name" limit|regex|ip value</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>
 
<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
FIXFIXFIX
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Limit&gt;, .ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.5rc1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
FIX FIX FIX
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>

<literallayout>
FIXFIXFIX
</literallayout>

<para>
FIXFIX
</para>

</refsect1>
</refentry>

<refentry id="SQLLogStats">
<?dbhtml filename="config_ref_SQLLogStats.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLLogStats</primary></indexterm>
SQLLogStats
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLLogStats</refname>
<refpurpose>FIXFIXFIX</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLLogStats</command>
<arg choice="opt">
  <option>"name" limit|regex|ip value</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>
 
<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
FIXFIXFIX
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Limit&gt;, .ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.5rc1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
FIX FIX FIX
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>

<literallayout>
FIXFIXFIX
</literallayout>

<para>
FIXFIX
</para>

</refsect1>
</refentry>

<refentry id="SQLLoginCountField">
<?dbhtml filename="config_ref_SQLLoginCountField.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLLoginCountField</primary></indexterm>
SQLLoginCountField
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLLoginCountField</refname>
<refpurpose>FIXFIXFIX</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLLoginCountField</command>
<arg choice="opt">
  <option>"name" limit|regex|ip value</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>
 
<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
FIXFIXFIX
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Limit&gt;, .ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.5rc1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
FIX FIX FIX
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>

<literallayout>
FIXFIXFIX
</literallayout>

<para>
FIXFIX
</para>

</refsect1>
</refentry>

<refentry id="SQLMinID">
<?dbhtml filename="config_ref_SQLMinID.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLMinID</primary></indexterm>
SQLMinID
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLMinID</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLMinID</command>
<arg choice="opt">
  <option>minimumid</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
999
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
SQLMinID is checked whenever retrieving a user's GID or UID.  If the
retrieved values for GID or UID are less than the value of SQLMinID,
they are reported as the values of, respectively, 'SQLDefaultGID' and
'SQLDefaultUID'.
</para>
</refsect1>

</refentry>

<refentry id="SQLMinUserGID">
<?dbhtml filename="config_ref_SQLMinUserGID.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLMinUserGID</primary></indexterm>
SQLMinUserGID
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLMinUserGID</refname>
<refpurpose>FIXFIXFIX</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLMinUserGID</command>
<arg choice="opt">
  <option>"name" limit|regex|ip value</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>
 
<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
FIXFIXFIX
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Limit&gt;, .ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.5rc1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
FIX FIX FIX
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>

<literallayout>
FIXFIXFIX
</literallayout>

<para>
FIXFIX
</para>

</refsect1>
</refentry>

<refentry id="SQLMinUserUID">
<?dbhtml filename="config_ref_SQLMinUserUID.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLMinUserUID</primary></indexterm>
SQLMinUserUID
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLMinUserUID</refname>
<refpurpose>FIXFIXFIX</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLMinUserUID</command>
<arg choice="opt">
  <option>"name" limit|regex|ip value</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>
 
<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
FIXFIXFIX
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Limit&gt;, .ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.5rc1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
FIX FIX FIX
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>

<literallayout>
FIXFIXFIX
</literallayout>

<para>
FIXFIX
</para>

</refsect1>
</refentry>

<refentry id="SQLNamedQuery">
<?dbhtml filename="config_ref_SQLNamedQuery.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLNamedQuery</primary></indexterm>
SQLNamedQuery
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLNamedQuery</refname>
<refpurpose>FIXFIXFIX</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLNamedQuery</command>
<arg choice="opt">
  <option>"name" limit|regex|ip value</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>
 
<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
FIXFIXFIX
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Limit&gt;, .ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.5rc1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
FIX FIX FIX
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>

<literallayout>
FIXFIXFIX
</literallayout>

<para>
FIXFIX
</para>

</refsect1>
</refentry>

<refentry id="SQLPasswordField">
<?dbhtml filename="config_ref_SQLPasswordField.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLPasswordField</primary></indexterm>
SQLPasswordField
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLPasswordField</refname>
<refpurpose>FIXFIXFIX</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLPasswordField</command>
<arg choice="opt">
  <option>"name" limit|regex|ip value</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>
 
<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
FIXFIXFIX
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Limit&gt;, .ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.5rc1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
FIX FIX FIX
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>

<literallayout>
FIXFIXFIX
</literallayout>

<para>
FIXFIX
</para>

</refsect1>
</refentry>

<refentry id="SQLProcessGrEnt">
<?dbhtml filename="config_ref_SQLProcessGrEnt.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLProcessGrEnt</primary></indexterm>
SQLProcessGrEnt
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLProcessGrEnt</refname>
<refpurpose>FIXFIXFIX</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLProcessGrEnt</command>
<arg choice="opt">
  <option>"name" limit|regex|ip value</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>
 
<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
FIXFIXFIX
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Limit&gt;, .ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.5rc1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
FIX FIX FIX
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>

<literallayout>
FIXFIXFIX
</literallayout>

<para>
FIXFIX
</para>

</refsect1>
</refentry>

<refentry id="SQLProcessPwEnt">
<?dbhtml filename="config_ref_SQLProcessPwEnt.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLProcessPwEnt</primary></indexterm>
SQLProcessPwEnt
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLProcessPwEnt</refname>
<refpurpose>FIXFIXFIX</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLProcessPwEnt</command>
<arg choice="opt">
  <option>"name" limit|regex|ip value</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>
 
<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
FIXFIXFIX
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Limit&gt;, .ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.5rc1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
FIX FIX FIX
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>

<literallayout>
FIXFIXFIX
</literallayout>

<para>
FIXFIX
</para>

</refsect1>
</refentry>

<refentry id="SQLRatioStats">
<?dbhtml filename="config_ref_SQLRatioStats.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLRatioStats</primary></indexterm>
SQLRatioStats
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLRatioStats</refname>
<refpurpose>FIXFIXFIX</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLRatioStats</command>
<arg choice="opt">
  <option>"name" limit|regex|ip value</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>
 
<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
FIXFIXFIX
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.5rc1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
FIX FIX FIX
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>

<literallayout>
FIXFIXFIX
</literallayout>

<para>
FIXFIX
</para>

</refsect1>
</refentry>

<refentry id="SQLRatios">
<?dbhtml filename="config_ref_SQLRatios.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLRatios</primary></indexterm>
SQLRatios
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLRatios</refname>
<refpurpose>FIXFIXFIX</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLRatios</command>
<arg choice="opt">
  <option>"name" limit|regex|ip value</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>
 
<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
FIXFIXFIX
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.5rc1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
FIX FIX FIX
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>

<literallayout>
FIXFIXFIX
</literallayout>

<para>
FIXFIX
</para>

</refsect1>
</refentry>

<refentry id="SQLSSLHashedPasswords">
<?dbhtml filename="config_ref_SQLSSLHashedPasswords.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLSSLHashedPasswords</primary></indexterm>
SQLSSLHashedPasswords
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLSSLHashedPasswords</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLSSLHashedPasswords</command>
<arg choice="opt">
  <option>on|off</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
off
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
This directive is DEPRECATED.  Please use SQLAuthTypes instead.

Specifies whether to accept passwords of the form
{digestname}hashedpassword from the database.  This directive is only
available if you define 'HAVE_OPENSSL' when you compile proftd and you
link with the OpenSSL 'crypto' library.  As an example, any of the
following password entries in the database would match if the user
typed the password 'testpassword':

{SHA}IoFZRnP0iujh/70lps6DjKPgwkk=
{SHA1}i7YRj4/Wk1rQh2o740pxfTJwj/0=
{MD2}nS6iguewvAdrCnOMyQjB1w==
{MD4}5wsGtJCkyXBzDJoVsQKjSg==
{MD5}4WsquNEjFL9O+9YgOQbqbA==
</para>
</refsect1>

</refentry>

<refentry id="SQLScrambledPasswords">
<?dbhtml filename="config_ref_SQLScrambledPasswords.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLScrambledPasswords</primary></indexterm>
SQLScrambledPasswords
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLScrambledPasswords</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLScrambledPasswords</command>
<arg choice="opt">
  <option>on|off</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
off
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
This directive is DEPRECATED.  Please use SQLAuthTypes instead.

Specifies whether to accept passwords in a backend specific format.
For the MySQL backend, this means 'PASSWORD()' scrambled passwords.
For the Postgres backend, this check does nothing.
</para>
</refsect1>

</refentry>

<refentry id="SQLShellField">
<?dbhtml filename="config_ref_SQLShellField.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLShellField</primary></indexterm>
SQLShellField
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLShellField</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLShellField</command>
<arg choice="opt">
  <option>fieldname</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
shell
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
Specifies the field in the user table that holds the user's shell.  If
this field doesn't exist or the result of the query is NULL, the shell
is reported as "".
</para>
</refsect1>

</refentry>

<refentry id="SQLShowInfo">
<?dbhtml filename="config_ref_SQLShowInfo.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLShowInfo</primary></indexterm>
SQLShowInfo
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLShowInfo</refname>
<refpurpose>FIXFIXFIX</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLShowInfo</command>
<arg choice="opt">
  <option>"name" limit|regex|ip value</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>
 
<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
FIXFIXFIX
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Limit&gt;, .ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.5rc1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
FIX FIX FIX
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>

<literallayout>
FIXFIXFIX
</literallayout>

<para>
FIXFIX
</para>

</refsect1>
</refentry>

<refentry id="SQLUidField">
<?dbhtml filename="config_ref_SQLUidField.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLUidField</primary></indexterm>
SQLUidField
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLUidField</refname>
<refpurpose>FIXFIXFIX</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLUidField</command>
<arg choice="opt">
  <option>"name" limit|regex|ip value</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>
 
<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
FIXFIXFIX
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Limit&gt;, .ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.5rc1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
FIX FIX FIX
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>

<literallayout>
FIXFIXFIX
</literallayout>

<para>
FIXFIX
</para>

</refsect1>
</refentry>

<refentry id="SQLUserInfo">
<?dbhtml filename="config_ref_SQLUserInfo.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLUserInfo</primary></indexterm>
SQLUserInfo
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLUserInfo</refname>
<refpurpose>FIXFIXFIX</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLUserInfo</command>
<arg choice="opt">
  <option>"name" limit|regex|ip value</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>
 
<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
FIXFIXFIX
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Limit&gt;, .ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.5rc1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
FIX FIX FIX
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>

<literallayout>
FIXFIXFIX
</literallayout>

<para>
FIXFIX
</para>

</refsect1>
</refentry>

<refentry id="SQLUserTable">
<?dbhtml filename="config_ref_SQLUserTable.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLUserTable</primary></indexterm>
SQLUserTable
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLUserTable</refname>
<refpurpose>FIXFIXFIX</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLUserTable</command>
<arg choice="opt">
  <option>"name" limit|regex|ip value</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>
 
<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
FIXFIXFIX
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Limit&gt;, .ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.5rc1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
FIX FIX FIX
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>

<literallayout>
FIXFIXFIX
</literallayout>

<para>
FIXFIX
</para>

</refsect1>
</refentry>

<refentry id="SQLUserWhereClause">
<?dbhtml filename="config_ref_SQLUserWhereClause.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLUserWhereClause</primary></indexterm>
SQLUserWhereClause
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLUserWhereClause</refname>
<refpurpose>FIXFIXFIX</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLUserWhereClause</command>
<arg choice="opt">
  <option>"name" limit|regex|ip value</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>
 
<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
FIXFIXFIX
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Limit&gt;, .ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.5rc1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
FIX FIX FIX
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>

<literallayout>
FIXFIXFIX
</literallayout>

<para>
FIXFIX
</para>

</refsect1>
</refentry>

<refentry id="SQLUsernameField">
<?dbhtml filename="config_ref_SQLUsernameField.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLUsernameField</primary></indexterm>
SQLUsernameField
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLUsernameField</refname>
<refpurpose>FIXFIXFIX</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLUsernameField</command>
<arg choice="opt">
  <option>"name" limit|regex|ip value</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>
 
<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
FIXFIXFIX
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Limit&gt;, .ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.5rc1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
FIX FIX FIX
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>

<literallayout>
FIXFIXFIX
</literallayout>

<para>
FIXFIX
</para>

</refsect1>
</refentry>

<refentry id="SQLWhereClause">
<?dbhtml filename="config_ref_SQLWhereClause.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_sql
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SQLWhereClause</primary></indexterm>
SQLWhereClause
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SQLWhereClause</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SQLWhereClause</command>
<arg choice="opt">
  <option>whereclause</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
none
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_sql
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
This directive deprecates 'SQLKey' and 'SQLKeyField'.

Specifies a where clause that is added to every user query (this has
no effect on group queries).  The where clause *must* contain all
relevant punctuation, and *must not* contain a leading 'and'.

As an example of switching from the old-style 'SQLKey' and
'SQLKeyField' directives, if you had:

SQLKey           true
SQLKeyfield      LoginAllowed

You would now use:

SQLWhereClause   "LoginAllowed = 'true'"

This would be appended to every user-related query as the string 

" and (LoginAllowed = 'true')"
</para>
</refsect1>

</refentry>

<refentry id="SaveRatios">
<?dbhtml filename="config_ref_SaveRatios.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_ratio
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SaveRatios</primary></indexterm>
SaveRatios
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SaveRatios</refname>
<refpurpose>FIXME FIXME</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SaveRatios</command>
<arg choice="opt">
  <option>SaveRatios foo1 foo2 foo3</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None known
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
&lt;Directory&gt;, &lt;Anonymous&gt;, &lt;Limit&gt;,.ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_ratio
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
at least 1.2.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The SaveRatios directive ....
Example:
SaveRatios</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="ScoreboardPath">
<?dbhtml filename="config_ref_ScoreboardPath.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>ScoreboardPath</primary></indexterm>
ScoreboardPath
</refentrytitle>
</refmeta>
<refnamediv>
<refname>ScoreboardPath</refname>
<refpurpose>Sets the path to the scoreboard file</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>ScoreboardPath</command>
<arg choice="opt">
  <option>path</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
ScoreboardPath /var/run
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.1.6 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The ScoreboardPath directive sets the directory where proftpd run-time scoreboard 
files (proftpd-*) are kept. These file(s) are necessary for MaxClients 
to work properly, as well as other utilities (such as ftpwho and ftpcount).</para> 
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="ServerAdmin">
<?dbhtml filename="config_ref_ServerAdmin.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>ServerAdmin</primary></indexterm>
ServerAdmin
</refentrytitle>
</refmeta>
<refnamediv>
<refname>ServerAdmin</refname>
<refpurpose>Set the address for the server admin</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>ServerAdmin</command>
<arg choice="opt">
  <option>ServerAdmin &quot;admin-email-address&quot;</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
ServerAdmin root@[ServerName]
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0pl10 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The ServerAdmin directive sets the email address of the administrator for 
the server or virtualhost. This address is displayed in magic cookie replacements 
(see DisplayLogin and DisplayFirstChdir).</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="ServerIdent">
<?dbhtml filename="config_ref_ServerIdent.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>ServerIdent</primary></indexterm>
ServerIdent
</refentrytitle>
</refmeta>
<refnamediv>
<refname>ServerIdent</refname>
<refpurpose>Set the message displayed on connect</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>ServerIdent</command>
<arg choice="opt">
  <option>ServerIdent off|on [identification string]</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
ServerIdent ProFTPD [version] Server (server name) [hostname]
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0pre2 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The ServerIdent directive sets the default message displayed when a new client 
connects. Setting this to off displays "[hostname] 
FTP server ready." If set to on, the directive 
can take an optional string argument, which will be displayed instead of the 
default text. Sites desiring to give out minimal information will probably 
want a setting like ServerIdent on "FTP Server ready.", which won't 
even reveal the hostname. </para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
ServerIdent on "Welcome to ftp.linux.co.uk"
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="ServerName">
<?dbhtml filename="config_ref_ServerName.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>ServerName</primary></indexterm>
ServerName
</refentrytitle>
</refmeta>
<refnamediv>
<refname>ServerName</refname>
<refpurpose>Configure the name displayed to connecting users</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>ServerName</command>
<arg choice="opt">
  <option>ServerName &quot;name&quot;</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
ServerName &quot;ProFTPD Server [version]&quot;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The ServerName directive configures the string that will be displayed to 
a user connecting to the server (or virtual server if the directive is located 
in a &lt;VirtualHost&gt; block). 
See Also: &lt;VirtualHost&gt;</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="ServerType">
<?dbhtml filename="config_ref_ServerType.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>ServerType</primary></indexterm>
ServerType
</refentrytitle>
</refmeta>
<refnamediv>
<refname>ServerType</refname>
<refpurpose>Set the mode proftpd runs in</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>ServerType</command>
<arg choice="opt">
  <option>ServerType type-identifier</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
ServerType standalone
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The ServerType directive configures the server daemon's operating mode. The 
type-identifier can be one of two values:
inetd
The daemon will expect to be run from the inetd &quot;super server.&quot; 
New connections are passed from inetd to proftpd and serviced immediately.
standalone
The daemon starts and begins listening to the configured port for incoming connections. New connections 
result in spawned child processes dedicated to servicing all requests from 
the newly connected client.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="ShowDotFiles">
<?dbhtml filename="config_ref_ShowDotFiles.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_ls
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>ShowDotFiles</primary></indexterm>
ShowDotFiles
</refentrytitle>
</refmeta>
<refnamediv>
<refname>ShowDotFiles</refname>
<refpurpose>Toggle display of 'dotfiles'</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>ShowDotFiles</command>
<arg choice="opt">
  <option>ShowDotFiles on|off</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
ShowDotFiles Off
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_ls
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0pl6 thru 1.2.5, removed in 1.2.6rc1
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
If set to on, files starting with a '.', except for the
directories '.' and '..', will be displayed in 
directory listings.  This directive has been deprecated in favor of 
LsDefaultOptions -- e.g., LsDefaultOptions
"-A" -- and may be removed in future versions.
See Also: LsDefaultOptions</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="ShowSymlinks">
<?dbhtml filename="config_ref_ShowSymlinks.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>ShowSymlinks</primary></indexterm>
ShowSymlinks
</refentrytitle>
</refmeta>
<refnamediv>
<refname>ShowSymlinks</refname>
<refpurpose>Toggle the display of symlinks</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>ShowSymlinks</command>
<arg choice="opt">
  <option>ShowSymlinks on|off</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
(versions 1.1.5 and beyond) ShowSymlinks On
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>

</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>
Compatibility: 0.99.0pl6 and later
Symbolic links (if supported on the host OS and filesystem) can be either 
shown in directory listings (including the target of the link) or can be &quot;hidden&quot; 
(proftpd dereferences symlinks and reports the target's permissions and ownership). 
The default behavior is to show all symbolic links when normal users are logged 
in, and hide them for anonymous sessions. If a symbolic link cannot be dereferenced 
for any reason (permissions, target does not exist, etc) and ShowSymlinks 
is off, proftpd displays the link as a directory entry of type 'l' (link) 
with the ownership and permissions of the actual link.
Under ProFTPD versions 1.1.5 and higher, the default behavior in regard to 
ShowSymlinks has been changed so that symbolic links are always displayed 
as such (in all cases), unless ShowSymlinks off is explicitly set.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="SocketBindTight">
<?dbhtml filename="config_ref_SocketBindTight.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SocketBindTight</primary></indexterm>
SocketBindTight
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SocketBindTight</refname>
<refpurpose>Controls how TCP/IP sockets are created</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SocketBindTight</command>
<arg choice="opt">
  <option>SocketBindTight on|off</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
SocketBindTight off
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0pl6 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The SocketBindTight directive controls how proftpd creates and binds its 
initial tcp listen sockets in standalone mode (see 
ServerType). The directive has no effect upon servers 
running in inetd mode, because listen sockets are 
not needed or created. When SocketBindTight is set to off 
(the default), a single listening socket is created for each port that the 
server must listen on, regardless of the number of IP addresses being used 
by &lt;VirtualHost&gt; configurations. This has 
the benefit of typically requiring a relatively small number of file descriptors 
for the master daemon process, even if a large number of virtual servers are 
configured. If SocketBindTight is set to on, a listen 
socket is created and bound to a specific IP address for the master server 
and all configured virtual servers. This allows for situations where an administrator 
may wish to have a particular port be used by both proftpd (on one IP address) 
and another daemon (on a different IP address). The drawback is that considerably 
more file descriptors will be required if a large number of virtual servers 
must be supported.
Example: Two servers have been configured (one master and one virtual), with 
the IP addresses 10.0.0.1 and 10.0.0.2, respectively. The 10.0.0.1 server 
runs on port 21, while 10.0.0.2 runs on port 2001.
SocketBindTight off #default
# proftpd creates two sockets, both bound to ALL available addresses.
# one socket listens on port 21, the other on 2001. Because each socket is
# bound to all available addresses, no other daemon or user process will be
# allowed to bind to ports 21 or 2001.
...
SocketBindTight on
# proftpd creates two sockets again, however one is bound to 10.0.0.1, port 
21
# and the other to 10.0.0.2, port 2001. Because these sockets are &quot;tightly&quot;
# bound to IP addresses, port 21 can be reused on any address OTHER than
# 10.0.0.1, and visa-versa with 10.0.0.2, port 2001.
One side-effect of setting SocketBindTight to on 
is that connections to non-bound addresses will result in a &quot;connection 
refused&quot; message rather than the typical &quot;500 Sorry, no server available 
to handle request on xxx.xxx.xxx.xxx.&quot;, due to the fact that no listen 
socket has been bound to the particular address/port pair. This may or may 
not be aesthetically desirable, depending on your circumstances.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="StoreUniquePrefix">
<?dbhtml filename="config_ref_StoreUniquePrefix.html">
<refentryinfo>
  <keywordset>
    <keyword>mod_xfer</keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>StoreUniquePrefix</primary></indexterm>
StoreUniquePrefix
</refentrytitle>
</refmeta>
<refnamediv>
<refname>StoreUniquePrefix</refname>
<refpurpose>Set the prefix to be added to uniquely generated filenames</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>StoreUniquePrefix</command>
<arg choice="opt">
  <option>"prefix"</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>
 
<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
none
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;, &lt;Global&gt;, &lt;Anonymous&gt;, &lt;Directory&gt; .ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_xfer
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.6rc1 and later
</para> </listitem>
</varlistentry>
</variablelist>

<refsect1>
<title>Description</title>
<para>
The StoreUniquePrefix is used to configure a prefix for the generated
unique random filenames used for the STOU FTP command.  The last
six characters of the filename will be random.  Slashes are not allowed
in the prefix string.
</para>

<para>All valid filename characters are allowed except '/'</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>

<literallayout>
FIXFIXFIX
</literallayout>

<para>
FIXFIX
</para>

</refsect1>
</refentry>

<refentry id="SyslogFacility">
<?dbhtml filename="config_ref_SyslogFacility.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SyslogFacility</primary></indexterm>
SyslogFacility
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SyslogFacility</refname>
<refpurpose>Set the facility level used for logging</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SyslogFacility</command>
<arg choice="opt">
  <option>SyslogFacility facility-level</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.1.6 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
Proftpd logs its activity via the Unix syslog mechanism, which allows for 
several different general classifications of logging messages, known as "facilities." 
Normally, all authentication related messages are logged with the AUTHPRIV 
(or AUTH) facility [intended to be secure, and never seen by unwanted eyes], 
while normal operational messages are logged with the DAEMON facility. The 
SyslogFacility directive allows ALL logging messages to be directed to a different 
facility than the default. When this directive is used, ALL logging is done 
with the specified facility, both authentication (secure) and otherwise.
The facility-level argument must be one of the 
following: AUTH (or AUTHPRIV), CRON, 
DAEMON, KERN, LPR, MAIL, NEWS, USER, UUCP, LOCAL0, LOCAL1, LOCAL2, LOCAL3, 
LOCAL4, LOCAL5, LOCAL6 or LOCAL7.
See Also: SystemLog</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="SyslogLevel">
<?dbhtml filename="config_ref_SyslogLevel.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SyslogLevel</primary></indexterm>
SyslogLevel
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SyslogLevel</refname>
<refpurpose>Set the verbosity level of system logging</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SyslogLevel</command>
<arg choice="opt">
  <option>SyslogLevel emerg|alert|crit|error|warn|notice|info|debug</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0rc2+cvs and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
SyslogLevel adjusts the verbosity of the messages recorded in the
error logs.  The following levels are available, in order
of decreasing significance:
Level
Description
emerg
Emergencies - system is unusable.
alert
Action must be taken immediately.
crit
Critical Conditions.
error
Error conditions.
warn
Warning conditions.
notice
Normal but significant condition.
info
Informational.
debug
Debug-level messages
When a particular level is specified, messages from all other
levels of higher significance will be reported as well.
E.g., when SyslogLevel info is specified, then
messages with log levels of notice and
warn will also be posted.
Using a level of at least crit is recommended.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="SystemLog">
<?dbhtml filename="config_ref_SystemLog.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_log
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>SystemLog</primary></indexterm>
SystemLog
</refentrytitle>
</refmeta>
<refnamediv>
<refname>SystemLog</refname>
<refpurpose>Redirect syslogging to a file</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>SystemLog</command>
<arg choice="opt">
  <option>SystemLog filename|NONE</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_log
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.1.6pl1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The SystemLog directive disables proftpd's use of the syslog mechanism and 
instead redirects all logging output to the specified filename. 
The filename argument should contain an absolute 
path, and should not be to a file in a nonexistent directory, in a
world-writeable directory, or be a symbolic link (unless AllowLogSymlinks
is set to on). Use of this directive overrides any facility set by the
SyslogFacility directive.  Additionally, the special keyword NONE can be used 
which disables all syslog style logging for the entire configuration.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<link linkend="AllowLogSymlinks">AllowLogSymlinks</link>
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="TCPAccessFiles">
<?dbhtml filename="config_ref_TCPAccessFiles.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_wrap
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>TCPAccessFiles</primary></indexterm>
TCPAccessFiles
</refentrytitle>
</refmeta>
<refnamediv>
<refname>TCPAccessFiles</refname>
<refpurpose>Sets the access files to use</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>TCPAccessFiles</command>
<arg choice="opt">
  <option>allow-filename deny-filename</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
none
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Global&gt;, &lt;Anonymous&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_wrap
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>

<para>
TCPAccessFiles specifies two files, an allow and a deny file, each
of which contain the IP addresses, networks or name-based masks to be
allowed or denied connections to the server. The files have the same
format as the standard tcpwrappers hosts.allow/deny files.
</para>

<para>Both file names are required. Also, the paths to both files must
be the full path, with two exceptions: if the path starts with ~/, the
check of that path will be delayed until a user requests a connection,
at which time the path will be resolved to that user's home directory;
or if the path starts with ~user/, where user is some system user. In
this latter case, mod_wrap will attempt to resolve and verify the given
user's home directory on start-up.
</para>

<para>The service name for which mod_wrap will look in the indicated
access files is proftpd by default; this can be configured via the
TCPServiceName directive.  There is a built-in precedence to the
TCPAccessFiles, TCPGroupAccessFiles, and TCPUserAccessFiles directives,
if all are used. mod_wrap will look for applicable TCPUserAccessFiles
for the connecting user first. If no applicable TCPUserAccessFiles is
found, mod_wrap will search for TCPGroupAccessFiles which pertain to
the connecting user.  If not found, mod_wrap will then look for the
server-wide TCPAccessFiles directive. This allows for access control to
be set on a per-server basis, and allow for per-user or per-group access
control to be handled without interfering with the server access rules.
</para>


</refsect1>

<refsect1>
<title>See also</title>
<para>
<link linkend="TCPGroupAccessFiles">TCPGroupAccessFiles</link>,
<link linkend="TCPServiceName">TCPServiceName</link>,
<link linkend="TCPUserAccessFiles">TCPUserAccessFiles</link>
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
# server-wide access files
TCPAccessFiles /etc/ftpd.allow /etc/ftpd.deny

# per-user access files, which are to be found in the user's home directory
TCPAccessFiles ~/my.allow ~/my.deny
</para>
</refsect1>

</refentry>
<refentry id="TCPAccessSyslogLevels">
<?dbhtml filename="config_ref_TCPAccessSyslogLevels.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_wrap
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>TCPAccessSyslogLevels</primary></indexterm>
TCPAccessSyslogLevels
</refentrytitle>
</refmeta>
<refnamediv>
<refname>TCPAccessSyslogLevels</refname>
<refpurpose>Sets the logging levels for mod_wrap</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>TCPAccessSyslogLevels</command>
<arg choice="opt">
  <option>allow-level deny-level</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
TCPAccessSyslogLevels info warn
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Global&gt;, &lt;Anonymous&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_wrap
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>

<para>
ProFTPD can log when a connection is allowed, or denied, as the result
of rules in the files specified in TCPAccessFiles, to the Unix syslog
mechanism. A discussion on the syslog levels which can be used is given
in the SyslogLevel directive.
</para>

<para>
The allow-level parameter sets the syslog level at which allowed connections
are logged; the deny-level parameter sets the syslog level for denied
connections. 
</para>

</refsect1>

<refsect1>
<title>See also</title>
<para>
<link linkend="SyslogLevel">SyslogLevel</link>
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
TCPAccessSyslogLevels debug warn
</para>
</refsect1>

</refentry>
<refentry id="TCPGroupAccessFiles">
<?dbhtml filename="config_ref_TCPGroupAccessFiles.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_wrap
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>TCPGroupAccessFiles</primary></indexterm>
TCPGroupAccessFiles
</refentrytitle>
</refmeta>
<refnamediv>
<refname>TCPGroupAccessFiles</refname>
<refpurpose>Sets the access files to use</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>TCPGroupAccessFiles</command>
<arg choice="opt">
  <option>group-expression allow-filename deny-filename</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
none
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_wrap
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>

<para>
TCPGroupAccessFiles allows for access control files, the same types of
files required by TCPAccessFiles, to be applied to select groups. The
given group-expression is a logical  AND expression, which means that
the connecting user must be a member of all the groups listed for this
directive to apply. Group names may be negated with a ! prefix.
</para>

<para>
The rules for the filename paths are the same as for TCPAccessFiles settings.
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<link linkend="TCPAccessFiles">TCPAccessFiles</link>,
<link linkend="TCPUserAccessFiles">TCPUserAccessFiles</link>
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
# every member of group wheel must connect from restricted locations
TCPGroupAccessFiles wheel /etc/ftpd-strict.allow /etc/ftpd-strict.deny

# everyone else gets the standard access rules
TCPGroupAccessFiles !wheel /etc/hosts.allow /etc/hosts.deny
</para>
</refsect1>

</refentry>
<refentry id="TCPServiceName">
<?dbhtml filename="config_ref_TCPServiceName.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_wrap
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>TCPServiceName</primary></indexterm>
TCPServiceName
</refentrytitle>
</refmeta>
<refnamediv>
<refname>TCPServiceName</refname>
<refpurpose>Configures the name proftpd will use with mod_wrap</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>TCPServiceName</command>
<arg choice="opt">
  <option>name</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
TCPServiceName proftpd
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_wrap
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>

<para>
TCPServiceName is used to configure the name of the service under which mod_wrap will check the allow/deny files. By default, this is the name of the program started, i.e. "proftpd". However, some administrators may want to use a different, more generic service name, such as "ftpd"; use this directive for such needs.
</para>

</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend="TCPGroupAccessFiles">TCPGroupAccessFiles</link>,
-->
</para>
</refsect1>

</refentry>
<refentry id="TCPUserAccessFiles">
<?dbhtml filename="config_ref_TCPUserAccessFiles.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_wrap
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>TCPUserAccessFiles</primary></indexterm>
TCPUserAccessFiles
</refentrytitle>
</refmeta>
<refnamediv>
<refname>TCPUserAccessFiles</refname>
<refpurpose>Sets the access files to use</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>TCPUserAccessFiles</command>
<arg choice="opt">
  <option>user-expression allow-filename deny-filename</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
none
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_wrap
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>

<para>
TCPUserAccessFiles allows for access control files, the same types of
files required by TCPAccessFiles, to be applied to select users. The given
user-expression is a logical AND expression. Listing multiple users in
a user-expression does not make much sense; however, this type of AND
evaluation allows for expressions such as "everyone except this user"
with the use of the ! negation prefix.
</para>

<para>
The rules for the filename paths are the same as for TCPAccessFiles settings.
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<link linkend="TCPAccessFiles">TCPAccessFiles</link>,
<link linkend="TCPGroupAccessFiles">TCPGroupAccessFiles</link>
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
# user admin might be allowed to connect from anywhere
TCPUserAccessFiles admin /etc/ftpd-anywhere.allow /etc/ftpd-anywhere.deny

# while every other user has to connect from LAN addresses
TCPUserAccessFiles !admin /etc/ftpd-lan.allow /etc/ftpd-lan.deny
</para>
</refsect1>

</refentry>
<refentry id="TimeoutIdle">
<?dbhtml filename="config_ref_TimeoutIdle.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>TimeoutIdle</primary></indexterm>
TimeoutIdle
</refentrytitle>
</refmeta>
<refnamediv>
<refname>TimeoutIdle</refname>
<refpurpose>Sets the idle connection timeout</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>TimeoutIdle</command>
<arg choice="opt">
  <option>TimeoutIdle seconds</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
TimeoutIdle 600
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The TimeoutIdle directive configures the maximum number of seconds that proftpd 
will allow clients to stay connected without receiving any data on either 
the control or data connection. If data is received on either connection, 
the idle timer is reset. Setting TimeoutIdle to 0 disables the idle timer 
completely (clients can stay connected for ever, without sending data). This 
is generally a bad idea as a &quot;hung&quot; tcp connection which is never 
properly disconnected (the remote network may have become disconnected from 
the Internet, etc) will cause a child server to never exit (at least not for 
a considerable period of time) until manually killed
See Also: TimeoutLogin, TimeoutNoTransfer</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="TimeoutLogin">
<?dbhtml filename="config_ref_TimeoutLogin.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>TimeoutLogin</primary></indexterm>
TimeoutLogin
</refentrytitle>
</refmeta>
<refnamediv>
<refname>TimeoutLogin</refname>
<refpurpose>Sets the login timeout</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>TimeoutLogin</command>
<arg choice="opt">
  <option>TimeoutLogin seconds</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
TimeoutLogin 300
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The TimeoutLogin directive configures the maximum number of seconds a client 
is allowed to spend authenticating. The login timer is not reset when a client 
transmits data, and is only removed once a client has transmitted an acceptable 
USER/PASS command combination.
See Also: TimeoutIdle, TimeoutNoTransfer</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="TimeoutNoTransfer">
<?dbhtml filename="config_ref_TimeoutNoTransfer.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>TimeoutNoTransfer</primary></indexterm>
TimeoutNoTransfer
</refentrytitle>
</refmeta>
<refnamediv>
<refname>TimeoutNoTransfer</refname>
<refpurpose>Sets the connection without transfer timeout</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>TimeoutNoTransfer</command>
<arg choice="opt">
  <option>TimeoutNoTransfer seconds</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
TimeoutNoTransfer 300
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The TimeoutNoTransfer directive configures the maximum number of seconds 
a client is allowed to spend connected, after authentication, without issuing 
a command which results in creating an active or passive data connection (i.e. 
sending/receiving a file, or receiving a directory listing).
See Also: TimeoutIdle, TimeoutLogin</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="TimeoutSession">
<?dbhtml filename="config_ref_TimeoutSession.html">
<refentryinfo>
  <keywordset>
    <keyword>mod_auth</keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>TimeoutSession</primary></indexterm>
TimeoutSession
</refentrytitle>
</refmeta>
<refnamediv>
<refname>TimeoutSession</refname>
<refpurpose>FIXFIXFIX</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>TimeoutSession</command>
<arg choice="opt">
  <option>"name" limit|regex|ip value</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>
 
<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
FIXFIXFIX
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Global&gt;, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Limit&gt;, .ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_auth
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.6rc1 and later
</para> </listitem>
</varlistentry>
</variablelist>

<refsect1>
<title>Description</title>
<para>
FIX FIX FIX
</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>

<literallayout>
FIXFIXFIX
</literallayout>

<para>
FIXFIX
</para>

</refsect1>
</refentry>

<refentry id="TimeoutStalled">
<?dbhtml filename="config_ref_TimeoutStalled.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>TimeoutStalled</primary></indexterm>
TimeoutStalled
</refentrytitle>
</refmeta>
<refnamediv>
<refname>TimeoutStalled</refname>
<refpurpose>Sets the timeout on stalled downloads</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>TimeoutStalled</command>
<arg choice="opt">
  <option>TimeoutStalled seconds</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
TimeoutStalled 3600
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.1.6 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>
<refsect1>
<title>Description</title>
<para>
The TimeoutStalled directive sets the maximum number of seconds a data connection 
between the proftpd server and an FTP client can exist but have no actual 
data transferred (i.e. &quot;stalled&quot;). If the seconds 
argument is set to 0, data transfers are allowed to stall 
indefinitely.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="TimesGMT">
<?dbhtml filename="config_ref_TimesGMT.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>TimesGMT</primary></indexterm>
TimesGMT
</refentrytitle>
</refmeta>
<refnamediv>
<refname>TimesGMT</refname>
<refpurpose>Toggle time display between GMT and local</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>TimesGMT</command>
<arg choice="opt">
  <option>TimesGMT on|off</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
(versions 1.2.0pre9 and beyond) on
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>

</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
Compatibility: 1.2.0pre9 and later
The TimesGMT option causes the server to report all ls and MDTM times in
GMT and not local time.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="TransferLog">
<?dbhtml filename="config_ref_TransferLog.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>TransferLog</primary></indexterm>
TransferLog
</refentrytitle>
</refmeta>
<refnamediv>
<refname>TransferLog</refname>
<refpurpose>Specify the path to the transfer log</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>TransferLog</command>
<arg choice="opt">
  <option>TransferLog filename|NONE</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
TransferLog /var/log/xferlog
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Anonymous&gt;, &lt;VirtualHost&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.1.4 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The TransferLog directive configures the full path to the &quot;wu-ftpd style&quot; 
file transfer log. Separate log files can be created for each Anonymous 
and/or VirtualHost.
Additionally, the special keyword NONE can be used, 
which disables wu-ftpd style transfer logging for the context in which the 
directive is used (only applicable to version 1.1.7 and later).
See Also: ExtendedLog, LogFormat</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="Umask">
<?dbhtml filename="config_ref_Umask.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>Umask</primary></indexterm>
Umask
</refentrytitle>
</refmeta>
<refnamediv>
<refname>Umask</refname>
<refpurpose>Set the default Umask</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>Umask</command>
<arg choice="opt">
  <option>Umask file octal-mask [directory octal-mask]</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Anonymous&gt;, &lt;VirtualHost&gt;, &lt;Directory&gt;, &lt;Global&gt;, .ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>

<para>Umask sets the mask applied to newly created file and directory
permissions within a given context. By default, the Umask in the server
configuration, &lt;VirtualHost&gt; or &lt;Anonymous&gt; block is used,
unless overridden by a &quot;per-directory&quot; Umask setting. Any
arguments supplied must be an octal number, in the format 0xxx. An
optional second argument can specify a Umask to be used when creating
directories. If a second argument isn't specified, directories are created
using the default Umask in the first argument. For more information on
umasks, consult your operating system documentation/man pages.</para>

<para>Proftpd will not create files that have the execution bit turned
on, this is a security driven design decision.  The permissions of the
uploaded file can be changed by issuing a SITE CHMOD command can be
used to change the mode of the uploaded file.  Syntax of the command is:
SITE CHMOD &lt;mode&gt; &lt;file&gt;.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="UseFtpUsers">
<?dbhtml filename="config_ref_UseFtpUsers.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>UseFtpUsers</primary></indexterm>
UseFtpUsers
</refentrytitle>
</refmeta>
<refnamediv>
<refname>UseFtpUsers</refname>
<refpurpose>Block based on /etc/ftpusers</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>UseFtpUsers</command>
<arg choice="opt">
  <option>UseFtpUsers on|off</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
UseFtpUsers on
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;Anonymous&gt;, &lt;VirtualHost&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
Legacy FTP servers generally check a special authorization file (typically 
/etc/ftpusers) when a client attempts to authenticate. If the user's name 
is found in this file, FTP access is denied. For compatibility sake, proftpd 
defaults to checking this file during authentication. This behavior can be 
suppressed using the UseFtpUsers configuration directive.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="UseGlobbing">
<?dbhtml filename="config_ref_UseGlobbing.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_ls
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>UseGlobbing</primary></indexterm>
UseGlobbing
</refentrytitle>
</refmeta>
<refnamediv>
<refname>UseGlobbing</refname>
<refpurpose>Toggles use of glob() functionality</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>UseGlobbing</command>
<arg choice="opt">
  <option>on|off</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
UseGlobbing on
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Global&gt;, &lt;Anonymous&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_ls
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.5rc1 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The UseGlobbing directive controls use of glob() functionality, which is
needed for supporting wildcard characters such as *.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

</refentry>
<refentry id="UseReverseDNS">
<?dbhtml filename="config_ref_UseReverseDNS.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>UseReverseDNS</primary></indexterm>
UseReverseDNS
</refentrytitle>
</refmeta>
<refnamediv>
<refname>UseReverseDNS</refname>
<refpurpose>Toggle rDNS lookups</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>UseReverseDNS</command>
<arg choice="opt">
  <option>UseReverseDNS on|off</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
UseReverseDNS on
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.1.7 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
Normally, incoming active mode data connections and outgoing passive mode 
data connections have a reverse DNS lookup performed on the remote host's 
IP address. In a chroot environment (such as &lt;Anonymous&gt; 
or DefaultRoot), the /etc/hosts file cannot be 
checked and the only possible resolution is via DNS. If for some reason, DNS 
is not available or improperly configured this can result in proftpd blocking 
(&quot;stalling&quot;) until the libc resolver code times out. Disabling this 
directive prevents proftpd from attempting to reverse-lookup data connection 
IP addresses. </para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="User">
<?dbhtml filename="config_ref_User.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>User</primary></indexterm>
User
</refentrytitle>
</refmeta>
<refnamediv>
<refname>User</refname>
<refpurpose>Set the user the daemon will run as</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>User</command>
<arg choice="opt">
  <option>User userid</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The User directive configures which user the proftpd daemon will normally 
run as. By default, proftpd runs as root which is considered undesirable 
in all but the most trustful network configurations. The User directive used 
in conjunction with the Group directive 
instructs the daemon to switch to the specified user and group as quickly 
as possible after startup. On some unix variants, the daemon will occasionally 
switch back to root in order to accomplish a task which requires super-user 
access. Once the task is completed, root privileges are relinquished and the 
server continues to run as the specified user and group. When applied to a 
&lt;VirtualServer&gt; block, proftpd 
will run as the specified user/group on connections destined for the virtual 
server's address or port. If either User or Group 
is applied to an &lt;Anonymous&gt; 
block, proftpd will establish an anonymous login when a user attempts to login 
with the specified userid, as well as permanently switching to the corresponding 
uid/gid (matching the User/Group parameters found in the anonymous block) 
after login.
Note: When an authorized unix user is authenticated and logs in, all former 
privileges are released, the daemon switches permanently to the logged in 
user's uid/gid, and is never again capable of switching back to root or any 
other user/group.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="UserAlias">
<?dbhtml filename="config_ref_UserAlias.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_auth
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>UserAlias</primary></indexterm>
UserAlias
</refentrytitle>
</refmeta>
<refnamediv>
<refname>UserAlias</refname>
<refpurpose>Alias a username to a system user</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>UserAlias</command>
<arg choice="opt">
  <option>UserAlias login-user userid</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_auth
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
ProFTPD requires a real username/uid when authenticating users as
provided by PAM, AuthUserFile or another authentication mechanism.
There are however times when additional aliases are required but it is
undesirable to provide additional login accounts.</para>

<para>UserAlias provides a mechanism to do this, a typical and common
example is within Anonymous configuration blocks.  It is normal for the
server to use 'ftp' as the primary authentication user, however it is
common practice for users to login using "anonymous".  This is achieved
by adding the following to the config file.</para>

</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>

<literallayout>
UserAlias anonymous ftp
</literallayout>

<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="UserDirRoot">
<?dbhtml filename="config_ref_UserDirRoot.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_auth
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>UserDirRoot</primary></indexterm>
UserDirRoot
</refentrytitle>
</refmeta>
<refnamediv>
<refname>UserDirRoot</refname>
<refpurpose>Set the chroot directory to a subdirectory of the anonymous server</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>UserDirRoot</command>
<arg choice="opt">
  <option>UserDirRoot on|off</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
off
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
&lt;Anonymous&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_auth
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0pre2 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
When set to true, the chroot base directory becomes a subdirectory of the 
anonymous ftp directory, based on the username of the current user.  For 
example, assuming user "foo" is aliased to "ftp", logging in as "foo" causes
proftpd to run as real user ftp, but to chroot into ~ftp/foo
instead of just ~ftp.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="UserOwner">
<?dbhtml filename="config_ref_UserOwner.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>UserOwner</primary></indexterm>
UserOwner
</refentrytitle>
</refmeta>
<refnamediv>
<refname>UserOwner</refname>
<refpurpose>Set the user ownership of new files / directories</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>UserOwner</command>
<arg choice="opt">
  <option>UserOwner username</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
&lt;Anonymous&gt;, &lt;Directory&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2pre11 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The UserOwner directive configures which user all newly created directories 
and files will be owned by, within the context that UserOwner is applied to. 
The user ID of username cannot be 0 (root).
Where it is used, the GroupOwner directive is not
restricted to groups that the current user is a member of.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="UserPassword">
<?dbhtml filename="config_ref_UserPassword.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>UserPassword</primary></indexterm>
UserPassword
</refentrytitle>
</refmeta>
<refnamediv>
<refname>UserPassword</refname>
<refpurpose>Creates a hardcoded username/password pair</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>UserPassword</command>
<arg choice="opt">
  <option>UserPassword userid hashed-password</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0pl5 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The UserPassword directive creates a password for a particular user which 
overrides the user's normal password in /etc/passwd (or /etc/shadow). The 
override is only effective inside the context to which UserPassword is applied. 
The hashed-password argument is a cleartext string 
which has been passed through the standard unix crypt() function. Do 
NOT use a cleartext password. This can be useful when combined with 
UserAlias to provide multiple logins to an Anonymous FTP site.
See Also: GroupPassword</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="UserRatio">
<?dbhtml filename="config_ref_UserRatio.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_ratio
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>UserRatio</primary></indexterm>
UserRatio
</refentrytitle>
</refmeta>
<refnamediv>
<refname>UserRatio</refname>
<refpurpose>Ratio directive</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>UserRatio</command>
<arg choice="opt">
  <option>UserRatio foo1 foo2 foo3</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None known
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
&lt;Directory&gt;, &lt;Anonymous&gt;, &lt;Limit&gt;,.ftpaccess
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_ratio
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
at least 1.2.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The UserRatio directive ....
Example:
UserRatio</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="VirtualHost">
<?dbhtml filename="config_ref_VirtualHost.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>VirtualHost</primary></indexterm>
VirtualHost
</refentrytitle>
</refmeta>
<refnamediv>
<refname>VirtualHost</refname>
<refpurpose>Define a virtual ftp server</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>VirtualHost</command>
<arg choice="opt">
  <option>&lt;VirtualHost address&gt;</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
None
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The VirtualHost configuration block is used to create an independent set 
of configuration directives that apply to a particular hostname or IP address. 
It is often used in conjunction with system level IP aliasing or dummy network 
interfaces in order to establish one or more &quot;virtual&quot; servers which 
all run on the same physical machine. The block is terminated with a &lt;/VirtualHost&gt; 
directive. By utilizing the 
Port directive inside a VirtualHost block, it is 
possible to create a virtual server which uses the same address as the master 
server, but listens on a separate tcp port (incompatible with ServerType inetd).
When proftpd starts, virtual server connections are handled in one of two 
ways, depending on the 
ServerType setting:
inetd
The daemon examines the destination address and port of the incoming connection 
handed off from inetd. If the connection matches one of the configured virtual 
hosts, the connection is serviced based on the appropriate configuration. 
If no virtual host matches, and the main server does not match, the client 
is informed that no server is available to service their requests and disconnected.
standalone
After parsing the configuration file, the daemon begins listening for connections 
on all configured ports, spawning child processes as necessary to handle 
connections for either the main server or any virtual servers.
Because of the method that the daemon uses to listen for connections when 
in standalone mode, it is possible to support an 
exceedingly large number of virtual servers, potentially exceeding the number 
of per-process file descriptors. This is due to the fact that a single file 
descriptor is used to listen to each configured port, regardless of the number 
of addresses being monitored. Note that it may be necessary to increase 
the
tcpBackLog value on heavily loaded 
servers in order to avoid kernel rejected client connections (&quot;Connection 
refused&quot;).</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="WtmpLog">
<?dbhtml filename="config_ref_WtmpLog.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>WtmpLog</primary></indexterm>
WtmpLog
</refentrytitle>
</refmeta>
<refnamediv>
<refname>WtmpLog</refname>
<refpurpose>Toggle logging to wtmp</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>WtmpLog</command>
<arg choice="opt">
  <option>WtmpLog on|off|NONE</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
WtmpLog on
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Anonymous&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.1.7 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The WtmpLog directive controls proftpd's logging of ftp
connections to the host system's wtmp file (used by such commands as
`last'). By default, all connections are logged via wtmp.
Please report any corrections or additions via http://bugs.proftpd.net/ </para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="tcpBackLog">
<?dbhtml filename="config_ref_tcpBackLog.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>tcpBackLog</primary></indexterm>
tcpBackLog
</refentrytitle>
</refmeta>
<refnamediv>
<refname>tcpBackLog</refname>
<refpurpose>Control the tcp backlog in standalone mode</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>tcpBackLog</command>
<arg choice="opt">
  <option>tcpBackLog backlog-size</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
tcpBackLog 5
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The tcpBackLog directive controls the tcp &quot;backlog queue&quot; when 
listening for connections in standalone mode (see 
ServerType). It has no affect upon 
servers in inetd mode. When a tcp connection is 
established by the tcp/ip stack inside the kernel, there is a short period 
of time between the actual establishment of the connection and the acceptance 
of the connection by a user-space program. The duration of this latency period 
is widely variable, and can depend upon several factors (hardware, system 
load, etc). During this period tcp connections cannot be accepted, as the 
port that was previously &quot;listening&quot; has become filled with the 
new connection. Under heavy connection load this can result in occasional 
(or even frequent!) &quot;connection refused&quot; messages returned to the 
incoming client, even when there is a service available to handle requests. 
To eliminate this problem, most modern tcp/ip stacks implement a &quot;backlog 
queue&quot; which is simply a pre-allocation of resources necessary to handle 
backlog-size connections during the latency period. 
The larger the backlog queue, the more connections can be established in a 
very short time period. The trade-off, of course, is kernel memory and/or 
other kernel resources.
Generally it is not necessary to use a tcpBackLog directive, unless you intend 
to service a large number of virtual hosts (see &lt;VirtualHost&gt;), 
or have a consistently heavy system load. If you begin to notice or hear of 
&quot;connection refused&quot; messages from remote clients, try setting a 
slightly higher value to this directive.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="tcpNoDelay">
<?dbhtml filename="config_ref_tcpNoDelay.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>tcpNoDelay</primary></indexterm>
tcpNoDelay
</refentrytitle>
</refmeta>
<refnamediv>
<refname>tcpNoDelay</refname>
<refpurpose>Control the use of TCP_NODELAY</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>tcpNoDelay</command>
<arg choice="opt">
  <option>tcpNoDelay on|off</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
tcpNoDelay on
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;, &lt;Global&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
1.2.0pre3a and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The tcpNoDelay directive controls the use of the TCP_NODELAY socket option 
(which disables the Nagle algorithm). ProFTPd uses TCP_NODELAY by default, 
which usually is a benefit but this can occasionally lead to problems with 
some clients, so tcpNoDelay is provided as a way to disable this option. You 
will not normally need to use this directive but if you have clients reporting 
unusually slow connections, try setting this to off. </para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="tcpReceiveWindow">
<?dbhtml filename="config_ref_tcpReceiveWindow.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>tcpReceiveWindow</primary></indexterm>
tcpReceiveWindow
</refentrytitle>
</refmeta>
<refnamediv>
<refname>tcpReceiveWindow</refname>
<refpurpose>Set the size of the tcp receive window</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>tcpReceiveWindow</command>
<arg choice="opt">
  <option>tcpReceiveWindow window-size</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
tcpReceiveWindow 8192
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The tcpReceiveWindow directive configures the size (in octets) of all data 
connections' tcp receive windows. It is only used when receiving a file from 
a client over the data connection. Typically, a given tcp/ip implementation 
will use a relatively small receive window size (the number of octets that 
can be received at the tcp layer before a &quot;turnaround&quot; acknowledgement 
is required). When transferring a large amount of data over fast digital transmission 
lines which have a relatively high latency, a small receive window can dramatically 
affect perceived throughput because of the necessity to completely stop the 
transfer occasionally in order to wait for the remote endpoint to receive 
the acknowledgement and continue transmission. For example, on a T1 line (assuming 
full 1.544Mbps endpoint-to-endpoint throughput) with 100 ms latency, a 4k 
receive buffer will very dramatically reduce the perceived throughput. The 
default value of 8192 octets (8k) should be reasonable in common network configurations.
Additionally, proftpd allocates its internal buffers to match the receive/send 
window sizes; in order to maximize the reception/transmission performance 
(reducing the number of times data must be transfered from proftpd to the 
kernel tcp/ip stack). The tradeoff, of course, is memory; both kernel- and 
user-space. If running proftpd on a memory tight host (and on a low-bandwidth 
connection), it might be advisable to decrease both the tcpReceiveWindow and 
tcpSendWindow sizes.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>
<refentry id="tcpSendWindow">
<?dbhtml filename="config_ref_tcpSendWindow.html">
<refentryinfo>
  <keywordset>
    <keyword>
      mod_core
    </keyword>
  </keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>
<indexterm><primary>tcpSendWindow</primary></indexterm>
tcpSendWindow
</refentrytitle>
</refmeta>
<refnamediv>
<refname>tcpSendWindow</refname>
<refpurpose>Set the size of the tcp send window</refpurpose>
</refnamediv>

<refsynopsisdiv>
<cmdsynopsis>
<command>tcpSendWindow</command>
<arg choice="opt">
  <option>tcpSendWindow window-size</option>
</arg>
<!--
<arg choice="opt" rep="repeat">file</arg>
-->
</cmdsynopsis>

<variablelist><title></title>
<varlistentry><term><synopsis>Default</synopsis></term>
<listitem> <para>
tcpSendWindow 8192
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Context</synopsis></term>
<listitem> <para>
server config, &lt;VirtualHost&gt;
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Module</synopsis></term>
<listitem> <para>
mod_core
</para> </listitem>
</varlistentry>

<varlistentry><term><synopsis>Compatibility</synopsis></term>
<listitem> <para>
0.99.0 and later
</para> </listitem>
</varlistentry>
</variablelist>
</refsynopsisdiv>

<refsect1>
<title>Description</title>
<para>
The tcpSendWindow directive configures the size (in octets) of all data connections' 
tcp send windows. It is only used when sending a file from the server to a 
client on the data connection. For a detailed description of receive/send 
window sizes see tcpReceiveWindow.</para>
</refsect1>

<refsect1>
<title>See also</title>
<para>
<!--
<link linkend=""></link>
-->
</para>
</refsect1>

<refsect1>
<title>Examples</title>
<para>
<!--
For examples, see 
<link linkend="Class">Class</link>
-->
</para>
</refsect1>

</refentry>