1VSFTPD.CONF(5) File Formats Manual VSFTPD.CONF(5)
2
3
4
6 vsftpd.conf - config file for vsftpd
7
9 vsftpd.conf may be used to control various aspects of vsftpd's behav‐
10 iour. By default, vsftpd looks for this file at the location
11 /etc/vsftpd/vsftpd.conf. However, you may override this by specifying
12 a command line argument to vsftpd. The command line argument is the
13 pathname of the configuration file for vsftpd. This behaviour is useful
14 because you may wish to use an advanced inetd such as xinetd to launch
15 vsftpd with different configuration files on a per virtual host basis.
16
17
19 The format of vsftpd.conf is very simple. Each line is either a comment
20 or a directive. Comment lines start with a # and are ignored. A direc‐
21 tive line has the format:
22
23 option=value
24
25 It is important to note that it is an error to put any space between
26 the option, = and value.
27
28 Each setting has a compiled in default which may be modified in the
29 configuration file.
30
31
33 Below is a list of boolean options. The value for a boolean option may
34 be set to YES or NO.
35
36
37 allow_anon_ssl
38 Only applies if ssl_enable is active. If set to YES, anonymous
39 users will be allowed to use secured SSL connections.
40
41 Default: NO
42
43 anon_mkdir_write_enable
44 If set to YES, anonymous users will be permitted to create new
45 directories under certain conditions. For this to work, the
46 option write_enable must be activated, and the anonymous ftp
47 user must have write permission on the parent directory.
48
49 Default: NO
50
51 anon_other_write_enable
52 If set to YES, anonymous users will be permitted to perform
53 write operations other than upload and create directory, such as
54 deletion and renaming. This is generally not recommended but
55 included for completeness.
56
57 Default: NO
58
59 anon_upload_enable
60 If set to YES, anonymous users will be permitted to upload files
61 under certain conditions. For this to work, the option
62 write_enable must be activated, and the anonymous ftp user must
63 have write permission on desired upload locations. This setting
64 is also required for virtual users to upload; by default, vir‐
65 tual users are treated with anonymous (i.e. maximally
66 restricted) privilege.
67
68 Default: NO
69
70 anon_world_readable_only
71 When enabled, anonymous users will only be allowed to download
72 files which are world readable. This is recognising that the ftp
73 user may own files, especially in the presence of uploads.
74
75 Default: YES
76
77 anonymous_enable
78 Controls whether anonymous logins are permitted or not. If
79 enabled, both the usernames ftp and anonymous are recognised as
80 anonymous logins.
81
82 Default: YES
83
84 ascii_download_enable
85 When enabled, ASCII mode data transfers will be honoured on
86 downloads.
87
88 Default: NO
89
90 ascii_upload_enable
91 When enabled, ASCII mode data transfers will be honoured on
92 uploads.
93
94 Default: NO
95
96 async_abor_enable
97 When enabled, a special FTP command known as "async ABOR" will
98 be enabled. Only ill advised FTP clients will use this feature.
99 Additionally, this feature is awkward to handle, so it is dis‐
100 abled by default. Unfortunately, some FTP clients will hang when
101 cancelling a transfer unless this feature is available, so you
102 may wish to enable it.
103
104 Default: NO
105
106 background
107 When enabled, and vsftpd is started in "listen" mode, vsftpd
108 will background the listener process. i.e. control will immedi‐
109 ately be returned to the shell which launched vsftpd.
110
111 Default: YES
112
113 check_shell
114 Note! This option only has an effect for non-PAM builds of
115 vsftpd. If disabled, vsftpd will not check /etc/shells for a
116 valid user shell for local logins.
117
118 Default: YES
119
120 chmod_enable
121 When enabled, allows use of the SITE CHMOD command. NOTE! This
122 only applies to local users. Anonymous users never get to use
123 SITE CHMOD.
124
125 Default: YES
126
127 chown_uploads
128 If enabled, all anonymously uploaded files will have the owner‐
129 ship changed to the user specified in the setting chown_user‐
130 name. This is useful from an administrative, and perhaps secu‐
131 rity, standpoint.
132
133 Default: NO
134
135 chroot_list_enable
136 If activated, you may provide a list of local users who are
137 placed in a chroot() jail in their home directory upon login.
138 The meaning is slightly different if chroot_local_user is set to
139 YES. In this case, the list becomes a list of users which are
140 NOT to be placed in a chroot() jail. By default, the file con‐
141 taining this list is /etc/vsftpd/chroot_list, but you may over‐
142 ride this with the chroot_list_file setting.
143
144 Default: NO
145
146 chroot_local_user
147 If set to YES, local users will be (by default) placed in a
148 chroot() jail in their home directory after login. Warning:
149 This option has security implications, especially if the users
150 have upload permission, or shell access. Only enable if you know
151 what you are doing. Note that these security implications are
152 not vsftpd specific. They apply to all FTP daemons which offer
153 to put local users in chroot() jails.
154
155 Default: NO
156
157 connect_from_port_20
158 This controls whether PORT style data connections use port 20
159 (ftp-data) on the server machine. For security reasons, some
160 clients may insist that this is the case. Conversely, disabling
161 this option enables vsftpd to run with slightly less privilege.
162
163 Default: NO (but the sample config file enables it)
164
165 debug_ssl
166 If true, OpenSSL connection diagnostics are dumped to the vsftpd
167 log file. (Added in v2.0.6).
168
169 Default: NO
170
171 delete_failed_uploads
172 If true, any failed upload files are deleted. (Added in
173 v2.0.7).
174
175 Default: NO
176
177 deny_email_enable
178 If activated, you may provide a list of anonymous password e-
179 mail responses which cause login to be denied. By default, the
180 file containing this list is /etc/vsftpd/banned_emails, but you
181 may override this with the banned_email_file setting.
182
183 Default: NO
184
185 dirlist_enable
186 If set to NO, all directory list commands will give permission
187 denied.
188
189 Default: YES
190
191 dirmessage_enable
192 If enabled, users of the FTP server can be shown messages when
193 they first enter a new directory. By default, a directory is
194 scanned for the file .message, but that may be overridden with
195 the configuration setting message_file.
196
197 Default: NO (but the sample config file enables it)
198
199 download_enable
200 If set to NO, all download requests will give permission denied.
201
202 Default: YES
203
204 dual_log_enable
205 If enabled, two log files are generated in parallel, going by
206 default to /var/log/xferlog and /var/log/vsftpd.log. The former
207 is a wu-ftpd style transfer log, parseable by standard tools.
208 The latter is vsftpd's own style log.
209
210 Default: NO
211
212 force_dot_files
213 If activated, files and directories starting with . will be
214 shown in directory listings even if the "a" flag was not used by
215 the client. This override excludes the "." and ".." entries.
216
217 Default: NO
218
219 force_anon_data_ssl
220 Only applies if ssl_enable is activated. If activated, all
221 anonymous logins are forced to use a secure SSL connection in
222 order to send and receive data on data connections.
223
224 Default: NO
225
226 force_anon_logins_ssl
227 Only applies if ssl_enable is activated. If activated, all
228 anonymous logins are forced to use a secure SSL connection in
229 order to send the password.
230
231 Default: NO
232
233 force_local_data_ssl
234 Only applies if ssl_enable is activated. If activated, all non-
235 anonymous logins are forced to use a secure SSL connection in
236 order to send and receive data on data connections.
237
238 Default: YES
239
240 force_local_logins_ssl
241 Only applies if ssl_enable is activated. If activated, all non-
242 anonymous logins are forced to use a secure SSL connection in
243 order to send the password.
244
245 Default: YES
246
247 guest_enable
248 If enabled, all non-anonymous logins are classed as "guest"
249 logins. A guest login is remapped to the user specified in the
250 guest_username setting.
251
252 Default: NO
253
254 hide_ids
255 If enabled, all user and group information in directory listings
256 will be displayed as "ftp".
257
258 Default: NO
259
260 implicit_ssl
261 If enabled, an SSL handshake is the first thing expect on all
262 connections (the FTPS protocol). To support explicit SSL and/or
263 plain text too, a separate vsftpd listener process should be
264 run.
265
266 Default: NO
267
268 listen If enabled, vsftpd will run in standalone mode. This means that
269 vsftpd must not be run from an inetd of some kind. Instead, the
270 vsftpd executable is run once directly. vsftpd itself will then
271 take care of listening for and handling incoming connections.
272
273 Default: NO
274
275 listen_ipv6
276 Like the listen parameter, except vsftpd will listen on an IPv6
277 socket instead of an IPv4 one. This parameter and the listen
278 parameter are mutually exclusive.
279
280 Default: NO
281
282 local_enable
283 Controls whether local logins are permitted or not. If enabled,
284 normal user accounts in /etc/passwd (or wherever your PAM config
285 references) may be used to log in. This must be enable for any
286 non-anonymous login to work, including virtual users.
287
288 Default: NO
289
290 lock_upload_files
291 When enabled, all uploads proceed with a write lock on the
292 upload file. All downloads proceed with a shared read lock on
293 the download file. WARNING! Before enabling this, be aware that
294 malicious readers could starve a writer wanting to e.g. append a
295 file.
296
297 Default: YES
298
299 log_ftp_protocol
300 When enabled, all FTP requests and responses are logged, provid‐
301 ing the option xferlog_std_format is not enabled. Useful for
302 debugging.
303
304 Default: NO
305
306 ls_recurse_enable
307 When enabled, this setting will allow the use of "ls -R". This
308 is a minor security risk, because a ls -R at the top level of a
309 large site may consume a lot of resources.
310
311 Default: NO
312
313 mdtm_write
314 When enabled, this setting will allow MDTM to set file modifica‐
315 tion times (subject to the usual access checks).
316
317 Default: YES
318
319 no_anon_password
320 When enabled, this prevents vsftpd from asking for an anonymous
321 password - the anonymous user will log straight in.
322
323 Default: NO
324
325 no_log_lock
326 When enabled, this prevents vsftpd from taking a file lock when
327 writing to log files. This option should generally not be
328 enabled. It exists to workaround operating system bugs such as
329 the Solaris / Veritas filesystem combination which has been
330 observed to sometimes exhibit hangs trying to lock log files.
331
332 Default: NO
333
334 one_process_model
335 If you have a Linux 2.4 kernel, it is possible to use a differ‐
336 ent security model which only uses one process per connection.
337 It is a less pure security model, but gains you performance. You
338 really don't want to enable this unless you know what you are
339 doing, and your site supports huge numbers of simultaneously
340 connected users.
341
342 Default: NO
343
344 passwd_chroot_enable
345 If enabled, along with chroot_local_user , then a chroot() jail
346 location may be specified on a per-user basis. Each user's jail
347 is derived from their home directory string in /etc/passwd. The
348 occurrence of /./ in the home directory string denotes that the
349 jail is at that particular location in the path.
350
351 Default: NO
352
353 pasv_addr_resolve
354 Set to YES if you want to use a hostname (as opposed to IP
355 address) in the pasv_address option.
356
357 Default: NO
358
359 pasv_enable
360 Set to NO if you want to disallow the PASV method of obtaining a
361 data connection.
362
363 Default: YES
364
365 pasv_promiscuous
366 Set to YES if you want to disable the PASV security check that
367 ensures the data connection originates from the same IP address
368 as the control connection. Only enable if you know what you are
369 doing! The only legitimate use for this is in some form of
370 secure tunnelling scheme, or perhaps to facilitate FXP support.
371
372 Default: NO
373
374 port_enable
375 Set to NO if you want to disallow the PORT method of obtaining a
376 data connection.
377
378 Default: YES
379
380 port_promiscuous
381 Set to YES if you want to disable the PORT security check that
382 ensures that outgoing data connections can only connect to the
383 client. Only enable if you know what you are doing!
384
385 Default: NO
386
387 require_cert
388 If set to yes, all SSL client connections are required to
389 present a client certificate. The degree of validation applied
390 to this certificate is controlled by validate_cert (Added in
391 v2.0.6).
392
393 Default: NO
394
395 require_ssl_reuse
396 If set to yes, all SSL data connections are required to exhibit
397 SSL session reuse (which proves that they know the same master
398 secret as the control channel). Although this is a secure
399 default, it may break many FTP clients, so you may want to dis‐
400 able it. For a discussion of the consequences, see http://scary‐
401 beastsecurity.blogspot.com/2009/02/vsftpd-210-released.html
402 (Added in v2.1.0).
403
404 Default: YES
405
406 run_as_launching_user
407 Set to YES if you want vsftpd to run as the user which launched
408 vsftpd. This is useful where root access is not available. MAS‐
409 SIVE WARNING! Do NOT enable this option unless you totally know
410 what you are doing, as naive use of this option can create mas‐
411 sive security problems. Specifically, vsftpd does not / cannot
412 use chroot technology to restrict file access when this option
413 is set (even if launched by root). A poor substitute could be to
414 use a deny_file setting such as {/*,*..*}, but the reliability
415 of this cannot compare to chroot, and should not be relied on.
416 If using this option, many restrictions on other options apply.
417 For example, options requiring privilege such as non-anonymous
418 logins, upload ownership changing, connecting from port 20 and
419 listen ports less than 1024 are not expected to work. Other
420 options may be impacted.
421
422 Default: NO
423
424 secure_email_list_enable
425 Set to YES if you want only a specified list of e-mail passwords
426 for anonymous logins to be accepted. This is useful as a low-
427 hassle way of restricting access to low-security content without
428 needing virtual users. When enabled, anonymous logins are pre‐
429 vented unless the password provided is listed in the file speci‐
430 fied by the email_password_file setting. The file format is one
431 password per line, no extra whitespace. The default filename is
432 /etc/vsftpd/email_passwords.
433
434 Default: NO
435
436 session_support
437 This controls whether vsftpd attempts to maintain sessions for
438 logins. If vsftpd is maintaining sessions, it will try and
439 update utmp and wtmp. It will also open a pam_session if using
440 PAM to authenticate, and only close this upon logout. You may
441 wish to disable this if you do not need session logging, and you
442 wish to give vsftpd more opportunity to run with less processes
443 and / or less privilege. NOTE - utmp and wtmp support is only
444 provided with PAM enabled builds.
445
446 Default: NO
447
448 setproctitle_enable
449 If enabled, vsftpd will try and show session status information
450 in the system process listing. In other words, the reported name
451 of the process will change to reflect what a vsftpd session is
452 doing (idle, downloading etc). You probably want to leave this
453 off for security purposes.
454
455 Default: NO
456
457 ssl_enable
458 If enabled, and vsftpd was compiled against OpenSSL, vsftpd will
459 support secure connections via SSL. This applies to the control
460 connection (including login) and also data connections. You'll
461 need a client with SSL support too. NOTE!! Beware enabling this
462 option. Only enable it if you need it. vsftpd can make no guar‐
463 antees about the security of the OpenSSL libraries. By enabling
464 this option, you are declaring that you trust the security of
465 your installed OpenSSL library.
466
467 Default: NO
468
469 ssl_request_cert
470 If enabled, vsftpd will request (but not necessarily require;
471 see require_cert)acertificateonincomingSSLconnections.Normal‐
472 lythis should not cause any trouble at all, but IBM zOS seems to
473 have issues. (New in v2.0.7).
474
475 Default: YES
476
477 ssl_sslv2
478 Only applies if ssl_enable is activated. If enabled, this option
479 will permit SSL v2 protocol connections. TLS v1 connections are
480 preferred.
481
482 Default: NO
483
484 ssl_sslv3
485 Only applies if ssl_enable is activated. If enabled, this option
486 will permit SSL v3 protocol connections. TLS v1 connections are
487 preferred.
488
489 Default: NO
490
491 ssl_tlsv1
492 Only applies if ssl_enable is activated. If enabled, this option
493 will permit TLS v1 protocol connections. TLS v1 connections are
494 preferred.
495
496 Default: YES
497
498 strict_ssl_read_eof
499 If enabled, SSL data uploads are required to terminate via SSL,
500 not an EOF on the socket. This option is required to be sure
501 that an attacker did not terminate an upload prematurely with a
502 faked TCP FIN. Unfortunately, it is not enabled by default
503 because so few clients get it right. (New in v2.0.7).
504
505 Default: NO
506
507 strict_ssl_write_shutdown
508 If enabled, SSL data downloads are required to terminate via
509 SSL, not an EOF on the socket. This is off by default as I was
510 unable to find a single FTP client that does this. It is minor.
511 All it affects is our ability to tell whether the client con‐
512 firmed full receipt of the file. Even without this option, the
513 client is able to check the integrity of the download. (New in
514 v2.0.7).
515
516 Default: NO
517
518 syslog_enable
519 If enabled, then any log output which would have gone to
520 /var/log/vsftpd.log goes to the system log instead. Logging is
521 done under the FTPD facility.
522
523 Default: NO
524
525 tcp_wrappers
526 If enabled, and vsftpd was compiled with tcp_wrappers support,
527 incoming connections will be fed through tcp_wrappers access
528 control. Furthermore, there is a mechanism for per-IP based con‐
529 figuration. If tcp_wrappers sets the VSFTPD_LOAD_CONF environ‐
530 ment variable, then the vsftpd session will try and load the
531 vsftpd configuration file specified in this variable.
532
533 Default: NO
534
535 text_userdb_names
536 By default, numeric IDs are shown in the user and group fields
537 of directory listings. You can get textual names by enabling
538 this parameter. It is off by default for performance reasons.
539
540 Default: NO
541
542 tilde_user_enable
543 If enabled, vsftpd will try and resolve pathnames such as
544 ~chris/pics, i.e. a tilde followed by a username. Note that
545 vsftpd will always resolve the pathnames ~ and ~/something (in
546 this case the ~ resolves to the initial login directory). Note
547 that ~user paths will only resolve if the file /etc/passwd may
548 be found within the _current_ chroot() jail.
549
550 Default: NO
551
552 use_localtime
553 If enabled, vsftpd will display directory listings with the time
554 in your local time zone. The default is to display GMT. The
555 times returned by the MDTM FTP command are also affected by this
556 option.
557
558 Default: NO
559
560 use_sendfile
561 An internal setting used for testing the relative benefit of
562 using the sendfile() system call on your platform.
563
564 Default: YES
565
566 userlist_deny
567 This option is examined if userlist_enable is activated. If you
568 set this setting to NO, then users will be denied login unless
569 they are explicitly listed in the file specified by
570 userlist_file. When login is denied, the denial is issued
571 before the user is asked for a password.
572
573 Default: YES
574
575 userlist_enable
576 If enabled, vsftpd will load a list of usernames, from the file‐
577 name given by userlist_file. If a user tries to log in using a
578 name in this file, they will be denied before they are asked for
579 a password. This may be useful in preventing cleartext passwords
580 being transmitted. See also userlist_deny.
581
582 Default: NO
583
584 validate_cert
585 If set to yes, all SSL client certificates received must vali‐
586 date OK. Self-signed certs do not constitute OK validation.
587 (New in v2.0.6).
588
589 Default: NO
590
591 userlist_log
592 This option is examined if userlist_enable is activated. If
593 enabled, every login denial based on the user list will be
594 logged.
595
596 Default: NO
597
598 virtual_use_local_privs
599 If enabled, virtual users will use the same privileges as local
600 users. By default, virtual users will use the same privileges as
601 anonymous users, which tends to be more restrictive (especially
602 in terms of write access).
603
604 Default: NO
605
606 write_enable
607 This controls whether any FTP commands which change the filesys‐
608 tem are allowed or not. These commands are: STOR, DELE, RNFR,
609 RNTO, MKD, RMD, APPE and SITE.
610
611 Default: NO
612
613 xferlog_enable
614 If enabled, a log file will be maintained detailling uploads and
615 downloads. By default, this file will be placed at
616 /var/log/vsftpd.log, but this location may be overridden using
617 the configuration setting vsftpd_log_file.
618
619 Default: NO (but the sample config file enables it)
620
621 xferlog_std_format
622 If enabled, the transfer log file will be written in standard
623 xferlog format, as used by wu-ftpd. This is useful because you
624 can reuse existing transfer statistics generators. The default
625 format is more readable, however. The default location for this
626 style of log file is /var/log/xferlog, but you may change it
627 with the setting xferlog_file.
628
629 Default: NO
630
631
633 Below is a list of numeric options. A numeric option must be set to a
634 non negative integer. Octal numbers are supported, for convenience of
635 the umask options. To specify an octal number, use 0 as the first digit
636 of the number.
637
638
639 accept_timeout
640 The timeout, in seconds, for a remote client to establish con‐
641 nection with a PASV style data connection.
642
643 Default: 60
644
645 anon_max_rate
646 The maximum data transfer rate permitted, in bytes per second,
647 for anonymous clients.
648
649 Default: 0 (unlimited)
650
651 anon_umask
652 The value that the umask for file creation is set to for anony‐
653 mous users. NOTE! If you want to specify octal values, remember
654 the "0" prefix otherwise the value will be treated as a base 10
655 integer!
656
657 Default: 077
658
659 chown_upload_mode
660 The file mode to force for chown()ed anonymous uploads. (Added
661 in v2.0.6).
662
663 Default: 0600
664
665 connect_timeout
666 The timeout, in seconds, for a remote client to respond to our
667 PORT style data connection.
668
669 Default: 60
670
671 data_connection_timeout
672 The timeout, in seconds, which is roughly the maximum time we
673 permit data transfers to stall for with no progress. If the
674 timeout triggers, the remote client is kicked off.
675
676 Default: 300
677
678 delay_failed_login
679 The number of seconds to pause prior to reporting a failed
680 login.
681
682 Default: 1
683
684 delay_successful_login
685 The number of seconds to pause prior to allowing a successful
686 login.
687
688 Default: 0
689
690 file_open_mode
691 The permissions with which uploaded files are created. Umasks
692 are applied on top of this value. You may wish to change to 0777
693 if you want uploaded files to be executable.
694
695 Default: 0666
696
697 ftp_data_port
698 The port from which PORT style connections originate (as long as
699 the poorly named connect_from_port_20 is enabled).
700
701 Default: 20
702
703 idle_session_timeout
704 The timeout, in seconds, which is the maximum time a remote
705 client may spend between FTP commands. If the timeout triggers,
706 the remote client is kicked off.
707
708 Default: 300
709
710 listen_port
711 If vsftpd is in standalone mode, this is the port it will listen
712 on for incoming FTP connections.
713
714 Default: 21
715
716 local_max_rate
717 The maximum data transfer rate permitted, in bytes per second,
718 for local authenticated users.
719
720 Default: 0 (unlimited)
721
722 local_umask
723 The value that the umask for file creation is set to for local
724 users. NOTE! If you want to specify octal values, remember the
725 "0" prefix otherwise the value will be treated as a base 10
726 integer!
727
728 Default: 077
729
730 max_clients
731 If vsftpd is in standalone mode, this is the maximum number of
732 clients which may be connected. Any additional clients connect‐
733 ing will get an error message.
734
735 Default: 0 (unlimited)
736
737 max_login_fails
738 After this many login failures, the session is killed.
739
740 Default: 3
741
742 max_per_ip
743 If vsftpd is in standalone mode, this is the maximum number of
744 clients which may be connected from the same source internet
745 address. A client will get an error message if they go over this
746 limit.
747
748 Default: 0 (unlimited)
749
750 pasv_max_port
751 The maximum port to allocate for PASV style data connections.
752 Can be used to specify a narrow port range to assist fire‐
753 walling.
754
755 Default: 0 (use any port)
756
757 pasv_min_port
758 The minimum port to allocate for PASV style data connections.
759 Can be used to specify a narrow port range to assist fire‐
760 walling.
761
762 Default: 0 (use any port)
763
764 trans_chunk_size
765 You probably don't want to change this, but try setting it to
766 something like 8192 for a much smoother bandwidth limiter.
767
768 Default: 0 (let vsftpd pick a sensible setting)
769
770
772 Below is a list of string options.
773
774
775 anon_root
776 This option represents a directory which vsftpd will try to
777 change into after an anonymous login. Failure is silently
778 ignored.
779
780 Default: (none)
781
782 banned_email_file
783 This option is the name of a file containing a list of anonymous
784 e-mail passwords which are not permitted. This file is consulted
785 if the option deny_email_enable is enabled.
786
787 Default: /etc/vsftpd/banned_emails
788
789 banner_file
790 This option is the name of a file containing text to display
791 when someone connects to the server. If set, it overrides the
792 banner string provided by the ftpd_banner option.
793
794 Default: (none)
795
796 ca_certs_file
797 This option is the name of a file to load Certificate Authority
798 certs from, for the purpose of validating client certs. The
799 loaded certs are also advertised to the client, to cater for
800 TLSv1.0 clients such as the z/OS FTP client. Regrettably, the
801 default SSL CA cert paths are not used, because of vsftpd's use
802 of restricted filesystem spaces (chroot). (Added in v2.0.6).
803
804 Default: (none)
805
806 chown_username
807 This is the name of the user who is given ownership of anony‐
808 mously uploaded files. This option is only relevant if another
809 option, chown_uploads, is set.
810
811 Default: root
812
813 chroot_list_file
814 The option is the name of a file containing a list of local
815 users which will be placed in a chroot() jail in their home
816 directory. This option is only relevant if the option
817 chroot_list_enable is enabled. If the option chroot_local_user
818 is enabled, then the list file becomes a list of users to NOT
819 place in a chroot() jail.
820
821 Default: /etvsftpd.confc/vsftpd.chroot_list
822
823 cmds_allowed
824 This options specifies a comma separated list of allowed FTP
825 commands (post login. USER, PASS and QUIT and others are always
826 allowed pre-login). Other commands are rejected. This is a pow‐
827 erful method of really locking down an FTP server. Example:
828 cmds_allowed=PASV,RETR,QUIT
829
830 Default: (none)
831
832 cmds_denied
833 This options specifies a comma separated list of denied FTP com‐
834 mands (post login. USER, PASS, QUIT and others are always
835 allowed pre-login). If a command appears on both this and
836 cmds_allowed then the denial takes precedence. (Added in
837 v2.1.0).
838
839 Default: (none)
840
841 deny_file
842 This option can be used to set a pattern for filenames (and
843 directory names etc.) which should not be accessible in any way.
844 The affected items are not hidden, but any attempt to do any‐
845 thing to them (download, change into directory, affect something
846 within directory etc.) will be denied. This option is very sim‐
847 ple, and should not be used for serious access control - the
848 filesystem's permissions should be used in preference. However,
849 this option may be useful in certain virtual user setups. In
850 particular aware that if a filename is accessible by a variety
851 of names (perhaps due to symbolic links or hard links), then
852 care must be taken to deny access to all the names. Access will
853 be denied to items if their name contains the string given by
854 hide_file, or if they match the regular expression specified by
855 hide_file. Note that vsftpd's regular expression matching code
856 is a simple implementation which is a subset of full regular
857 expression functionality. Because of this, you will need to
858 carefully and exhaustively test any application of this option.
859 And you are recommended to use filesystem permissions for any
860 important security policies due to their greater reliability.
861 Supported regex syntax is any number of *, ? and unnested {,}
862 operators. Regex matching is only supported on the last compo‐
863 nent of a path, e.g. a/b/? is supported but a/?/c is not. Exam‐
864 ple: deny_file={*.mp3,*.mov,.private}
865
866 Default: (none)
867
868 dsa_cert_file
869 This option specifies the location of the DSA certificate to use
870 for SSL encrypted connections.
871
872 Default: (none - an RSA certificate suffices)
873
874 dsa_private_key_file
875 This option specifies the location of the DSA private key to use
876 for SSL encrypted connections. If this option is not set, the
877 private key is expected to be in the same file as the certifi‐
878 cate.
879
880 Default: (none)
881
882 email_password_file
883 This option can be used to provide an alternate file for usage
884 by the secure_email_list_enable setting.
885
886 Default: /etc/vsftpd/email_passwords
887
888 ftp_username
889 This is the name of the user we use for handling anonymous FTP.
890 The home directory of this user is the root of the anonymous FTP
891 area.
892
893 Default: ftp
894
895 ftpd_banner
896 This string option allows you to override the greeting banner
897 displayed by vsftpd when a connection first comes in.
898
899 Default: (none - default vsftpd banner is displayed)
900
901 guest_username
902 See the boolean setting guest_enable for a description of what
903 constitutes a guest login. This setting is the real username
904 which guest users are mapped to.
905
906 Default: ftp
907
908 hide_file
909 This option can be used to set a pattern for filenames (and
910 directory names etc.) which should be hidden from directory
911 listings. Despite being hidden, the files / directories etc. are
912 fully accessible to clients who know what names to actually use.
913 Items will be hidden if their names contain the string given by
914 hide_file, or if they match the regular expression specified by
915 hide_file. Note that vsftpd's regular expression matching code
916 is a simple implementation which is a subset of full regular
917 expression functionality. See deny_file for details of exactly
918 what regex syntax is supported. Example: hide_file={*.mp3,.hid‐
919 den,hide*,h?}
920
921 Default: (none)
922
923 listen_address
924 If vsftpd is in standalone mode, the default listen address (of
925 all local interfaces) may be overridden by this setting. Provide
926 a numeric IP address.
927
928 Default: (none)
929
930 listen_address6
931 Like listen_address, but specifies a default listen address for
932 the IPv6 listener (which is used if listen_ipv6 is set). Format
933 is standard IPv6 address format.
934
935 Default: (none)
936
937 local_root
938 This option represents a directory which vsftpd will try to
939 change into after a local (i.e. non-anonymous) login. Failure is
940 silently ignored.
941
942 Default: (none)
943
944 message_file
945 This option is the name of the file we look for when a new
946 directory is entered. The contents are displayed to the remote
947 user. This option is only relevant if the option dirmes‐
948 sage_enable is enabled.
949
950 Default: .message
951
952 nopriv_user
953 This is the name of the user that is used by vsftpd when it
954 wants to be totally unprivileged. Note that this should be a
955 dedicated user, rather than nobody. The user nobody tends to be
956 used for rather a lot of important things on most machines.
957
958 Default: nobody
959
960 pam_service_name
961 This string is the name of the PAM service vsftpd will use.
962
963 Default: ftp
964
965 pasv_address
966 Use this option to override the IP address that vsftpd will
967 advertise in response to the PASV command. Provide a numeric IP
968 address, unless pasv_addr_resolve is enabled, in which case you
969 can provide a hostname which will be DNS resolved for you at
970 startup.
971
972 Default: (none - the address is taken from the incoming con‐
973 nected socket)
974
975 rsa_cert_file
976 This option specifies the location of the RSA certificate to use
977 for SSL encrypted connections.
978
979 Default: /usr/share/ssl/certs/vsftpd.pem
980
981 rsa_private_key_file
982 This option specifies the location of the RSA private key to use
983 for SSL encrypted connections. If this option is not set, the
984 private key is expected to be in the same file as the certifi‐
985 cate.
986
987 Default: (none)
988
989 secure_chroot_dir
990 This option should be the name of a directory which is empty.
991 Also, the directory should not be writable by the ftp user. This
992 directory is used as a secure chroot() jail at times vsftpd does
993 not require filesystem access.
994
995 Default: /usr/share/empty
996
997 ssl_ciphers
998 This option can be used to select which SSL ciphers vsftpd will
999 allow for encrypted SSL connections. See the ciphers man page
1000 for further details. Note that restricting ciphers can be a use‐
1001 ful security precaution as it prevents malicious remote parties
1002 forcing a cipher which they have found problems with.
1003
1004 Default: DES-CBC3-SHA
1005
1006 user_config_dir
1007 This powerful option allows the override of any config option
1008 specified in the manual page, on a per-user basis. Usage is sim‐
1009 ple, and is best illustrated with an example. If you set
1010 user_config_dir to be /etc/vsftpd/user_conf and then log on as
1011 the user "chris", then vsftpd will apply the settings in the
1012 file /etc/vsftpd/user_conf/chris for the duration of the ses‐
1013 sion. The format of this file is as detailed in this manual
1014 page! PLEASE NOTE that not all settings are effective on a per-
1015 user basis. For example, many settings only prior to the user's
1016 session being started. Examples of settings which will not
1017 affect any behviour on a per-user basis include listen_address,
1018 banner_file, max_per_ip, max_clients, xferlog_file, etc.
1019
1020 Default: (none)
1021
1022 user_sub_token
1023 This option is useful is conjunction with virtual users. It is
1024 used to automatically generate a home directory for each virtual
1025 user, based on a template. For example, if the home directory of
1026 the real user specified via guest_username is /home/vir‐
1027 tual/$USER, and user_sub_token is set to $USER, then when vir‐
1028 tual user fred logs in, he will end up (usually chroot()'ed) in
1029 the directory /home/virtual/fred. This option also takes affect
1030 if local_root contains user_sub_token.
1031
1032 Default: (none)
1033
1034 userlist_file
1035 This option is the name of the file loaded when the
1036 userlist_enable option is active.
1037
1038 Default: /etc/vsftpd/user_list
1039
1040 vsftpd_log_file
1041 This option is the name of the file to which we write the vsftpd
1042 style log file. This log is only written if the option xfer‐
1043 log_enable is set, and xferlog_std_format is NOT set. Alterna‐
1044 tively, it is written if you have set the option
1045 dual_log_enable. One further complication - if you have set
1046 syslog_enable, then this file is not written and output is sent
1047 to the system log instead.
1048
1049 Default: /var/log/vsftpd.log
1050
1051 xferlog_file
1052 This option is the name of the file to which we write the wu-
1053 ftpd style transfer log. The transfer log is only written if the
1054 option xferlog_enable is set, along with xferlog_std_format.
1055 Alternatively, it is written if you have set the option
1056 dual_log_enable.
1057
1058 Default: /var/log/xferlog
1059
1060
1062 scarybeasts@gmail.com
1063
1064
1065
1066
1067 VSFTPD.CONF(5)