The
file specifies various configuration options for
that apply once a user has authenticated their connection.
consists of a series of lines, each of which may contain a
configuration directive, a comment, or a blank line.
Directives that appear later in the file override settings by previous
directives.
This allows
entries to define defaults, and then have class-specific overrides.
A directive line has the format:
A
is the escape character; it can be used to escape the meaning of the
comment character, or if it is the last character on a line, extends
a configuration directive across multiple lines.
A
is the comment character, and all characters from it to the end of
line are ignored (unless it is escaped with the escape character).
Each authenticated user is a member of a
which is determined by
is used to determine which
entries apply to the user.
The following special classes exist when parsing entries in
Matches any class.
Matches no class.
Each class has a type, which may be one of:
Guests (as per the
and
logins).
A
is performed after login.
users (as per
A
is performed after login.
Normal users.
The
command will return the class settings for the current user as defined by
Each configuration line may be one of:
Set the address to advertise in the response to the
and
commands to the address for
(which may be either a host name or IP address).
This may be useful in some firewall configurations, although many
ftp clients may not work if the address being advertised is different
to the address that they've connected to.
If
is
or no argument is given, disable this.
Check the
command for validity.
The
command will fail if the IP address specified does not match the
command connection, or if the remote TCP port number is less than
It is
encouraged that this option be used, espcially for sites concerned
with potential security problems with
bounce attacks.
If
is
or
is given, disable this feature, otherwise enable it.
If
is not given or
is
use the default behaviour (see below).
Otherwise,
is parsed to create a directory to create as the root directory with
into upon login.
can contain the following escape strings:
Class name.
Home directory of user.
User name.
A
character.
The default root directory is:
The user's home directory.
If
is given, use
otherwise the home directory of the
user.
By default no
is performed.
Set the class type of
to
(see above).
Define an automatic in-line file conversion.
If a file to retrieve ends in
and a real file (sans
exists, then the output of
is returned instead of the contents of the file.
The suffix to initiate the conversion.
A list of valid filetypes for the conversion.
Valid types are:
(file), and
(directory).
The name of file that will prevent conversion if it exists.
A file name of
will prevent this disabling action
(i.e., the conversion is always permitted.)
The command to run for the conversion.
The first word should be the full path name
of the command, as
is used to execute the command.
All instances of the word
in
are replaced with the requested file (sans
Conversion directives specified later in the file override earlier
conversions with the same suffix.
If
is not given or
is
disable this.
Otherwise, each time the user enters a new directory, check if
exists, and if so, display its contents to the user.
Escape sequences are supported; refer to
in
for more information.
If
is not given or
is
use the default behaviour (see below).
Otherwise,
is parsed to create a directory to change into upon login, and to use
as the
directory of the user for tilde expansion in pathnames, etc.
is parsed as per the
directive.
The default home directory is the home directory of the user for
users, and
for
and
users.
Limit the maximum number of concurrent connections for
to
with
meaning unlimited connections.
If the limit is exceeded and
is given, display its contents to the user.
If
is
or
is not specified, disable this.
If
is a relative path, it will be searched for in
(which can be overridden with
Set the maximum size of an uploaded file to
If
is
or no argument is given, disable this.
Set the maximum timeout period that a client may request,
defaulting to two hours.
This cannot be less than 30 seconds, or the value for
If
is
or
is not specified, set to default of 2 hours.
If
is
or
is given, disable the following commands:
and
Otherwise, enable them.
If
is not given or
is
disable this.
Otherwise, use
as the message of the day file to display after login.
Escape sequences are supported; refer to
in
for more information.
If
is a relative path, it will be searched for in
(which can be overridden with
If
is not given or
is
disable this.
Otherwise, each time the user enters a new directory,
notify the user of any files matching
If
is
or
is given, disallow passive
and
connections.
Otherwise, enable them.
Set the range of port number which will be used for the passive data port.
must be greater than
and both numbers must be be between
(1024) and 65535.
If
is
or no arguments are given, disable this.
Set the maximum get
transfer rate throttle for
to
bytes per second.
If
is 0, the throttle is disabled.
If
is
or no arguments are given, disable this.
An optional suffix may be provided, which changes the intrepretation of
as follows:
Causes no modification. (Default; optional)
Kilo; multiply the argument by 1024
Mega; multiply the argument by 1048576
Giga; multiply the argument by 1073741824
Tera; multiply the argument by 1099511627776
Set the maximum put
transfer rate throttle for
to
bytes per second,
which is parsed as per
If
is
or no arguments are given, disable this.
If
is
or
is given, allow uploaded file names to contain any characters valid for a
file name.
Otherwise, only permit file names which don't start with a
and only comprise of characters from the set
Define
as the
for
any reference to
in following directives will also apply to members of
This is useful to define a template class so that other classes which are
to share common attributes can be easily defined without unnecessary
duplication.
There can be only one template defined at a time.
If
is not given, disable the template for
Set the inactivity timeout period.
(the default is fifteen minutes).
This cannot be less than 30 seconds, or greater than the value for
If
is
or
is not specified, set to the default of 15 minutes.
Set the umask to
If
is
or
is not specified, set to the default of
If
is
or
is given, disable the following commands:
and
as well as the modify commands:
and
Otherwise, enable them.
DEFAULTS
The following defaults are used:
checkportcmd all
classtype chroot CHROOT
classtype guest GUEST
classtype real REAL
display none
limit all -1 # unlimited connections
maxtimeout all 7200 # 2 hours
modify all
motd all motd
notify none
passive all
timeout all 900 # 15 minutes
umask all 027
upload all
modify guest off
umask guest 0707
FILES
This file.
A sample
file.
SEE ALSO
HISTORY
The
functionality was implemented in
and later releases by Luke Mewburn, based on work by Simon Burge.