# Server shutdown: 1=deny all but siteops, 2=deny all, 0=sever open #shutdown <0|1|2> shutdown 0 # Authentication mode. # 0 = allow clear and SSL connections # 1 = allow SSL connections only #auth_mode <0|1> auth_mode 0 # Port the server will listen on (default 21). # NOTE: The server must be restarted to change this. #server_port server_port 8000 # Port the implicit SSL server will listen on. # By default the server will not listen for implicit SSL connections. # The standard implicit SSL listening port is 990. # NOTE: The server must be restarted to change this. #server_sslport #server_sslport 990 # The IP address the server should listen on (bind to). By default the # server will listen on all IPs (bind to all IPs). # NOTE: The IP must be in dotted notation (Ex. 127.0.0.1). # The server must be restarted to change this. #bind_ip #bind_ip 127.0.0.1 # Login prompt to display to the user #login_prompt login_prompt Logging in... # Long name for the site #sitename_long sitename_long BattleRoyal Server ready.... # Short name for the site #sitename_short sitename_short BattleRoyal # The root path of the server. # This must come before all other relative paths. #rootpath rootpath /etc/apache2/conf # default_homedir is used to set the homedir for newly created users. # If the path starts with "./", the path will be taken relative to the # rootpath. Otherwise the path will be treated as absolute. #default_homedir default_homedir ./site/ # Path to the server data --always relative to the "rootpath". #datapath datapath /ftp-data # Settings for site NUKE command. The first parameter is a prefix string # to use for nuked directories (Ex. NUKED-). The prefix string is added # to the directory name when it is nuked. The second parameter specifies # how the nuke command should behave. 0 -> delete all nuked directories # (permanently removes all files and dirs). 1 -> delete all files, but # keep directories. 2 -> keep files and directories. Using 2 enables # unnuke to restore the nuked directory. The third parameter is used to # determine if a directory should be treated as empty. If the total size # of the files in the directory are less than or equal to this value, the # directory will be treated as empty. #nukedir_style <0|1|2> nukedir_style NUKED- 2 0 # The amount of kbytes that will be removed from the user if # the nuked directory is empty. #nuke_empty nuke_empty 5000 # The highest multiplier a nuker can use. If nuke_mult_max is set # to 0, there is no limit. #nuke_mult_max nuke_mult_max 5 # Sets the number of days back to check for dupes. Setting dupe_check # to 0 will disable dupe-checking. Dupe checking is always case insensitive. #dupe_check dupe_check 30 # Specifies filemasks for files that should not be added to the dupe log. # Dupe checking will not apply to these files. Use [:space:] to enter # filemasks with spaces. The mask are always treated as case insensitive. # Multiple ignore_type commands can be used. #ignore_type [ ...] ignore_type *.txt *.nfo readme ignore_type *.doc # Max number of users allowed on the site, max allowed when full # (must have flag 1 or 4) #max_users max_users 15 3 # Will resolve an IP. If set to 0 will not bother resolving the IPs to names. #resolve_dns <0|1> resolve_dns 1 # Filesystem synchronization cycle time (minutes). This is the # frequency at which the filesystem in memory will be synchronized with # the *.fs files (located in ROOTPATH/fs). This operation can also be # performed manually using the "SITE FSSYNC" command (must be siteop). # If fs_sync_freq is set to 0, synchronization will only be done when # the server is stopped. #fs_sync_freq fs_sync_freq 60 # Max transfer speed, in Kb/sec, for the site (0 = unlimited) #speed_limit # Specifies who is allowed to use FXP for passive transfers (PASV). # Users that are allowed to use FXP can make data connections on # a different IP address than their control connection. Use # "allow_fxp_pasv 0" to completely disable FXP for passive transfers. # NOTE: Passive FXP must be enabled on servers that allow remote # connections. # EXAMPLE: allow_fxp_pasv 1 2 =SiteOps =STAFF -admin # This will allow passive mode FXP to be used by users with # the flags 1 or 2, in the SiteOps or STAFF group, or the # user named admin. # allow_fxp_pasv !8 * # This will allow passive mode FXP to be used by all users # except users with the 8 flag. #allow_fxp_pasv <*|flag|-user|=group> allow_fxp_pasv * # Same as allow_fxp_pasv except applies to active transfers (PORT). #allow_fxp_port <*|flag|-user|=group> allow_fxp_port * # Sets if the PORT command (active mode transfers) can specify a data # port below 1024 (standard service ports range). # If allow_service_ports is set to 0, the PORT command will only allow # ports greater than 1024 to be used. #allow_service_ports <0|1> allow_service_ports * # Range of ports to use for PASV mode data connections (default = any port). # If is 0 any port will be used (OS will assign ports). # NOTE: When a range of ports is specified with the "pasv_port_range" option, # only -+1 data connections will be able to be made at one # time. Also, should be at least greater than 1024 to avoid # conflicts with standard services (in general make > 5000). #pasv_port_range # IP address the server should use when making data connections # (this will be the address returned in the PASV command). # This is useful when the server is behind a firewall and is assigned an # internal IP address. # By default the IP address of the network interface the client is # connected to is used. #server_ip ######################################################################### # Custom commands # # The following specifiers can be used in the arguments passed in EXEC # mode. # %u = username # %y = group # %R = root directory of the server (rootpath) # %d = absolute path of the user's CWD # %Y = permissions # %Z = flags # Used to define a custom SITE command. There is no limit to how many # site_cmd can be specified. The first argument can be D, G, or L: # D -> the command should be forwarded to aliased (remote) DFTPD sites. # G -> the command should be forwarded to any aliased site. # L -> the command should not be forwarded (local only). # The second argument for "site_cmd" is the name of the custom command. # The name of the custom command can only be 1 word --with no spaces. # The command name is not case sensitive. The third parameter can be one # of three posibilities: # EXEC will execute a script/binary. # TEXT will display a text file. # IS will execute the internal SITE command specified afterwards. # The fourth parameter is the name of the script/binary, text file, or # internal command depending on the type of custom command. The path for # the fourth parameter is relative to the root directory (rootpath). A # fifth argument is only used with the EXEC and IS options to specify # arguments to pass to the script/binary or internal command. If multiple # arguments need to be passed, use [:space:] between the arguments. # NOTE: EXEC commands that specify a file ending in .sh will be passed # to the "bash" program. Files with any other extension will be # run as a binary. #site_cmd [optional arg] site_cmd D NFO EXEC /bin/nfo.sh %R[:space:]%d site_cmd D ZIPLIST EXEC /bin/ziplist.sh %R[:space:]%d site_cmd D ZIPCHK EXEC /bin/zipchk.sh %R[:space:]%d # Sets the permissions for a custom SITE command. After a command is # specified with site_cmd the permissions for the custom command should # be set with "custom". # NOTE: When using the IS mode, only the specified permissions are used. # The permissions for the internal command will not be applied. # Example1: site_cmd L MYUSERS IS USERS # custom MYUSERS * # (In this example all users will be allowed to use the "SITE MYUSERS" # command. However, the permissions for "SITE USERS" will remain # unchanged.) # Example2: site_cmd L TEST EXEC /bin/test.sh arg1[:space:]arg2 # custom test =SiteOps 1 2 -admin #custom <*|flag|-user|=group> custom NFO !8 * custom ZIPLIST !8 * custom ZIPCHK !8 * ######################################################################### # Custom scripts # # Custom scripts (or binaries) to be executed before/after any command. # The first parameter is the name of the command before/after which to # execute the script. The second parameter can be either "pre" or "post", # to run before or after, respectively. The third parameter is the full # path to the script to be executed, relative to the rootpath of the site. # If using a command with a space in it, like a SITE command, you need # to use "[:space:]" between the words (Ex: SITE[:space:]WHO). # Both "pre" and "post" scripts will be passed 4 parameters: # $1 = full command string the user used # $2 = user's login name # $3 = user's group # $4 = user's absolute CWD path # "Post" scripts cannot echo anything to the client --they are executed # after the response is sent to the client. If the last line echoed by # a "pre" script starts with "4xx" or "5xx", or if the script can't be # executed, the FTP command that should run after the script will not be # executed. Any lines that are echoed by a "pre" script should contain # the proper FTP prefix code. In general successful results should start # with "2xx" and failure should start with "5xx" (Ex. "200- Success"). # Also, when multiple lines are sent back to the client, the intermediate # lines should start with "xxx-" (Ex. 200- success) and the final line # should start with "xxx " (Ex. 500 Error). Only error responses should # contain a final line since successful responses will be followed by the # response to the FTP command that was specified. # NOTE: EXEC commands that specify a file ending in .sh will be passed # to the "bash" program. Files with any other extension will be # run as a binary. #cscript ######################################################################### # Commands used to set who can use what SITE commands # # Default SITE flags: # ADDIP "1 2 7" # ADDUSER "1 2 7" # ALDN "!8 *" # ALUP "!8 *" # AUTHMODE "1" # CHANGE "1 7" # CHGRP "1 7" # CHMOD "*" # CHOWN "1" # CHPASS "1 2 7" # COPY "1" # DAYDN "!8 *" # DAYUP "!8 *" # DELIP "1 2 7" # DELTREE "1" # DELUSER "1 2 7" # DIRINFO "*" # DIRMIRROR "1" # DISKINFO "1 J" # DUPE "1" # DUPEENABLE "1" # FLAGS "!8 *" # FRATIO "1" # FSCK "1" # FSSYNC "1" # GADDUSER "1 7" # GENKEYS "1" # GINFO "1 2 H" # GIVE "1 G" # GPAD "!8 *" # GPAL "!8 *" # GPMD "!8 *" # GPMN "!8 *" # GPWD "!8 *" # GPWK "!8 *" # GROUP "!3 *" # GROUPS "!8 *" # GRPADD "1" # GRPDEL "1" # GRPLOG "1" # GRPNFO "1 2" # GRPREN "1" # HELP "!8 *" # IDLE "1 I" # KICK "1 D" # KILL "1 E" # LINK "1" # LINKS "1" # LOGINS "1" # MONTHDN "!8 *" # MONTHUP "!8 *" # MSG "!8 *" # NEW "!8 *" # NUKE "1 A" # NUKELOG "1 A B 7" # NUKETOP "!8 *" # PASSWD "!8 *" # PERMISSIONS "!8 *" # PURGE "1" # PURGETREE "1" # RATIO "1 2 7" # READD "1 2 7" # RENUSER "1 7" # REQFILLED "!8 *" # REQLOG "1 A B 7" # REQUEST "!8 *" # RESTREE "1" # RMLINK "1" # RULES "!8 *" # SEEN "!8 *" # SEARCH "!8 *" # SHOW "1" # SHUTDOWN "1" # STATE "1 E" # STATS "!8 *" # SWHO "1 E" # SYSLOG "1" # TAGLINE "!8 *" # TAKE "1 F" # TIME "!8 *" # TRAFFIC "!8 *" # UNDUPE "1 C" # UNNUKE "1 B" # UPTIME "!8 *" # USER "!8 *" # USERDATA "1 R" # USERS "1 H" # USERSYNC "1" # VERS "!8 *" # WELCOME "!8 *" # WHO "!8 *" # WIPE "1" # WKDN "!8 *" # WKUP "!8 *" # # Default SITE REMOTE flags: # REMOTE[:space:]ADDALIAS "1" # REMOTE[:space:]ADDMIRROR "1" # REMOTE[:space:]ALIAS "1" # REMOTE[:space:]ALIASES "1" # REMOTE[:space:]CHANGE "1" # REMOTE[:space:]CONNECTIONS "1" # REMOTE[:space:]DEFMIRROR "1" # REMOTE[:space:]DELALIAS "1" # REMOTE[:space:]DELMIRROR "1" # REMOTE[:space:]DISCONNECT "1" # REMOTE[:space:]HELP "!8 *" # REMOTE[:space:]KILL "1" # REMOTE[:space:]LOGIN "R" # REMOTE[:space:]MIRRORS "1" # REMOTE[:space:]SHAREDCONNECTIONS "1" # REMOTE[:space:]SHAREDLOGIN "R" # REMOTE[:space:]SHAREDQUIT "R" # REMOTE[:space:]TUNNEL "1" # REMOTE[:space:]UPDATE "R" # The first argument specifies the SITE command to set flags for. The # remaining arguments specify the flags required to access the command. # The flags arguments can also specify specific users and groups to # allow/disallow. To specify a user use - to specify a group # use =. '*' is used to specify all users. To disallow # flags, users, or groups add a '!' before the flag, username, or # groupname. The flags are processed in order (from left to right) until # a match is found (either allow or disallow). For example, specifying # "!8 *" will first reject any user with the '8' flag and then allow # anybody else. The flags specified with site_flags will replace the # default flags for the command. #site_flags ######################################################################### # Commands used for logging configuration # # Formatting string for the log date field # %a = abbreviated weekday name according to the current locale # %A = full weekday name according to the current locale # %b = abbreviated month name according to the current locale # %B = full month name according to the current locale # %d = day of the month as a decimal number (range 01 to 31) # %H = hour as a decimal number using a 24-hour clock (range 00 to 23) # %I = hour as a decimal number using a 12-hour clock (range 01 to 12) # %j = day of the year as a decimal number (range 001 to 366) # %m = month as a decimal number (range 01 to 12) # %p = current locale's AM/PM. indicator for 12-hour clock # %S = second as a decimal number (range 00 to 61) # %w = day of the week as a decimal, range 0 to 6, Sunday being 0 # %y = year as a decimal number without a century (range 00 to 99) # %Y = year as a decimal number including the century # %z = time-zone as hour offset from GMT # %Z = time zone or name or abbreviation # %O = display the 5-digit (w/ + or -) UTC offset in minutes (Ex. EST -> -0300) # %% = A literal `%' character #log_date_format #log_date_format %d/%m/%Y:%H:%M:%S # Formatting string for the program log file # %D -> date (format is specified using log_date_format) # %S -> sub-system (where in the prog the log is coming from) # %M -> message (message that is passed in) #log_prog_format #log_prog_format %D;%M # Program log file name # Uses the same format options as log_date_format #log_prog_name #log_prog_name dftpd.log # Formatting string for the access log file # %d -> date (format is specified using log_date_format) # %s -> server IP # %l -> server listening port # %c -> client IP # %p -> client port # %u -> user name # %m -> FTP command (method) # %a -> argument to the command # %r -> 3-digit response code from the server # %t -> response text from the server #log_access_format #log_access_format %d;%s;%l;%c;%p;%u;%m;%a;%r;%t # Access log file name # Uses the same format options as log_date_format #log_access_name #log_access_name %d%m%Y_access.log ######################################################################### # Commands used for the remote features # # IP address used to identify the server when making remote connections # to other DFTPD servers. # By default the IP address of the first network interface is used # (not 127.0.0.1). #site_ip