The backend to use for authentication and user/group management. You can specify a test on the backend version if needed. See the glossary for explanation on what a backend is.
backend = /path/to/libwzdplaintext.so
backend = /path/to/libwzdplaintext.so > 122
In these two examples, backend will be called 'plaintext'
You need at least one backend.
If backend needs an argument, specify it here. The argument depend on the backend used, see backend definition for details.
backend_param_plaintext = /path/to/users
This line must come after the definition of the backend.
Custom scripts (or binaries) to be executed before/after certain commands.
cscript = /path/to/exe
cscript = tcl:/path/to/script
Change the size of the internal buffer used for data transfers.
data_buffer_length = 65536
Use this option carefully ! This can havea big impact on transfer rates.
Specify 1 here to deny access to files during their upload.
deny_access_files_uploaded = 1
When changing current directory, the server will look for this file, and if present will append it to the end of the ftp reply.
dir_message = .message
If you specify 1 or an ip, the server will try to detect ip changes (e.g ADSL disconnections).
dynamic_ip = 1
dynamic_ip = xxx.myftp.org
0 means the option is deactivated, 1 the server will ask the system to find its ip, otherwise the server will perform DNS lookups
Specify 1 here to hide files beginning with a dot ('.')
hide_dotted_files = 1
Specify server ip, to restrict server to a specific interface (usefull mainly for server with multiples interfaces).
ip = *
ip = 127.0.0.1
Location of a directory where the server will put various log files.
logdir = /var/log/wzdftpd
Log file for server activity (see use_syslog)
logfile = /path/to/wzd.log
Controls the verbosity of the server in the log file.
loglevel = high
This means only messages with a level greater or equal than 'high' will be logged
level can be one of (in order): lowest, flood, info, normal, high, critical
Maximum cumulated (for all users connected) download speed in bytes/sec.
max_dl_speed = 300000
The hard limit for child threads (clients connected simultaneously).
max_threads = 50
Maximum cumulated (for all users connected) upload speed in bytes/sec.
max_ul_speed = 300000
The higher bound of ip range the server can take.
pasv_high_range = 3000
Specify passive ip.
pasv_ip = 64.xxx.xxx.xxx
The lower bound of ip range the server can take.
pasv_low_range = 2500
File where pid of server will be stored. This is used by init.d scripts to send signals to server.
pid_file = /path/to/wzdftpd.pid
The port to listen.
port = 1321
IMPORTANT: under linux, you need privileges to bind to a system port ( < 1024 )
This options defines the behaviour of the server if the user is not accepted. The default (1) will immediatly reject user and close connection, while setting 0 will cause the server to continue the login process (sending a password request) and reject user after.
reject_unknown_users = 0
This option can be used for more security, to prevent a client from detecting user names.
Change the group ID of the server after binding port. This is usefull only if server is runned by root
server_gid = users
[Linux] Server will drop privileges and change its uid to server_uid after binding port. This is usefull only if server is runned by root
server_uid = toto
IMPORTANT: under linux, you need privileges to bind to a system port ( < 1024 )
Custom site commands.
site_cmd = my_free /path/to/free.sh
site_cmd = my_tcl tcl:/path/to/script
This will define a new site command, "my_free".
You can also print out the content of a file (parsing all cookies inside).
site_cmd = onel !/path/to/onel.txt
The default permission is to allow ALL users to run command. Do not forget to add a permission line if your command needs to be restricted !
Use syslog to log server messages (see logfile)
use_syslog = 1
The name of the TLS certificate to use.
tls_certificate = /path/to/wzd.pem
The name of the TLS certificate key file to use.
tls_certificate_key = /path/to/wzd_key.pem
If not specified, the server will try to use the certificate for the key file.
The cipher list server will negotiate during TLS handshake
tls_cipher_list = ALL
You should not use this option, or let "ALL", unless you know what you are doing.
see openssl ciphers, man openssl(1)
Use implicit, explicit or explicit_strict mode (see tls modes for details)
tls_mode = explicit
This is the permissions that are set when a new directory is created. Permissions are written in octal with the default format (permissions for owner, group, others).
umask = 755
The default permissions (775) allow every user from the same group to write files in the directory.
Remember that DELETE permission is managed in a different way - unlike unix, it's not because you have the write permission that you can delete files in it. In fact, unless you specify an explicit permission on config file, only the owner of a file (and siteop) can delete a file.
Log transferred files in common xferlog format (suitable for analysis with classical tools).
xferlog = /path/to/xferlog