The ftpservers file is used to configure complete virtual hosting. In contrast to limited virtual hosting, complete virtual hosting allows separate configuration files to be specified for each virtual host.
The set of configuration files for each virtual host are placed in their own directory. The ftpservers file associates the address of each virtual host with the directory its configuration files are stored in. The virtual host configuration files must be named:
ftpaccess Virtual host's access file
ftpusers Restricts the accounts that can use the virtual host
ftpgroups Virtual hosts enhanced group access file
ftphosts Allow or deny usernames access to the virtual host
ftpconversions Customize conversions available from the virtual host
You do not need to put every file in each virtual host directory. If you want a virtual host to use the master copy of a file, then do not include it in the virtual host directory. If the file is not included, the master copy from the /etc/ftpd directory will be used.
The file names must match exactly. If you misspell any of them or name them differently, the server will not find them, and the server will use the master copy instead.
The ftpaddhost utility is an administrative tool to configure virtual hosts. See ftpaddhost(1M).
There are two fields to each entry in the ftpservers file:
10.196.145.10 /etc/ftpd/virtual-ftpd/10.196.145.10 10.196.145.200 /etc/ftpd//virtual-ftpd/10.196.145.200 some.domain INTERNAL
When an FTP client connects to the FTP Server, in.ftpd(1M) tries to match the IP address to which the FTP client connected with one found in the ftpservers file.
The address can be an IPv4 or IPv6 address, or a hostname.
If a match is found, The FTP server uses any configuration files found in the associated directory.
If a match is not found, or an invalid directory path is encountered, the default paths to the configuration files are used. The use of INTERNAL in the example above fails the check for a specific directory, and the master configuration files will be used.
Either the actual IP address or a specific hostname can be used to specify the virtual host. It is better to specify the actual IP of the virtual host, as it reduces the need for a domain lookup and eliminates DNS security related naming issues, for example:
10.196.145.20 /etc/ftpd/config/faqs.org/ ftp.some.domain /etc/ftpd/config/faqs.org/
Lines that begin with a # sign are treated as comment lines and are ignored.
See attributes(5) for descriptions of the following attributes:
|ATTRIBUTE TYPE||ATTRIBUTE VALUE|
ftpaddhost(1M), in.ftpd(1M), ftpaccess(4), ftpconversions(4), ftpgroups(4), ftphosts(4), ftpusers(4), attributes(5)