Each ProFTPD configuration directive is described using a common format that looks like this:
Each of the directive's attributes, complete with possible values where possible, are described in this document.
proftpd.conf) outside of any other context (i.e. not inside a
<Global>context). This context defines a "main" or "default" server.
<VirtualHost>sections in the server configuration file.
<Global>sections in the server configuration file. This context is used as a shortcut for placing directives with all server contexts (i.e. the "server config" context as well as any
<VirtualHost>contexts within the configuration file). Any directives of the same name within those server contexts will have precedence over a
<Anonymous>sections in the server configuration file. An anonymous context is not a true virtual server, but rather is a context within server context (i.e. "server config",
<Global>). Anonymous contexts are automatically
chroot()ed. Any configuration directives set for the containing server will be in effect for the anonymous context as well, unless overridden by a directive of the same name within the anonymous context.
<Limit>sections in the server configuration file. This context is used to place limits on who and how individual FTP commands, or groupings of FTP commands, may be used.
<Directory>sections in the server configuration file. This context configures views of the contained files based on the logged-in user's username or group membership, or on the name of the files (e.g. Unix-style "hidden" files), and on whether the user has permission to see the files. By definition, directives set using a
.ftpaccessfile are considered to be occurring within a
.ftpaccessfiles. These files are akin to Apache's
.htaccessfiles: parsed-on-the-fly mini-configuration files that users can place within their own directories.
The directive is only allowed within the designated context; if you try to use it elsewhere, you'll get a configuration error that will either prevent the server from handling requests in that context correctly, or will keep the server from operating at all -- i.e., the server won't even start.
The valid locations for the directive are actually the result of a Boolean OR
of all of the listed contexts. In other words, a directive that is marked as
being valid in "
server config, .ftpaccess" can be used
proftpd.conf file and in
.ftpaccess files, but
not within any
or other contexts.