Adoptable Cookbooks List

Looking for a cookbook to adopt? You can now see a list of cookbooks available for adoption!
List of Adoptable Cookbooks

Supermarket Belongs to the Community

Supermarket belongs to the community. While Chef has the responsibility to keep it running and be stewards of its functionality, what it does and how it works is driven by the community. The chef/supermarket repository will continue to be where development of the Supermarket application takes place. Come be part of shaping the direction of Supermarket by opening issues and pull requests or by joining us on the Chef Mailing List.

Select Badges

Select Supported Platforms

Select Status


basic_vsftpd (4) Versions 0.1.1

Installs/Configures vsftpd package

cookbook 'basic_vsftpd', '= 0.1.1', :supermarket
cookbook 'basic_vsftpd', '= 0.1.1'
knife supermarket install basic_vsftpd
knife supermarket download basic_vsftpd
Quality 0%

basic_vsftpd Cookbook

Build Status

A basic cookbook to install and configure the vsftpd package.

All vsftpd configuration options can be set using this cookbook,
and no "helpful" defaults are provided.
See Attributes for details.

Supported platforms

This cookbook has only been tested for Ubuntu 14.04.

Testing/adding support for other platforms is encouraged. See Contributing.



This recipe:
* installs the vsftpd package
* creates the vsftpd.conf configuration file
from node['basic_vsftpd']['config']['...'] attributes
* if node['basic_vsftpd']['config']['user_config_dir'] is set, creates an empty user config directory
* enables and starts the vsftpd service


Creates a chroot_list file for vsftpd from node attributes.
See [Other attributes](@other-attributes) for details.
If you don't want to use this recipe, you can create the chroot_list file manually.


Creates a userlist file for vsftpd from node attributes.
See [Other attributes](@other-attributes) for details.
If you don't want to use this recipe, you can create the userlist file manually.



This resource creates a user configuration file in the vsftpd user_config_dir directory.

* user, string, name property, the name of the user
* content, string, the content of the user config file

* :create, :delete

Note: This resource requires the node['basic_vsftpd']['config']['user_config_dir']
attribute to be set and for the directory to exist.


vsftpd config attributes

Only two vsftpd configuration attributes are set by default.
The default values are the same as the vsftpd defaults,
and are set only to make the defaults available to the node.
* node['basic_vsftpd']['config']['chroot_list_file'], default: '/etc/vsftpd.chroot_list'
* node['basic_vsftpd']['config']['userlist_file'], default: '/etc/vsftpd.user_list'

To set other vsftpd.conf attributes

string attributes:

default['basic_vsftpd']['config']['option_name'] = 'string_option_value'

YES/NO attributes

default['basic_vsftpd']['config']['yesno_option_name'] = 'YES' # or 'NO'

numeric attributes

default['basic_vsftpd']['config']['numeric_option_name'] = 12345
default['basic_vsftpd']['config']['numeric_option_name'] = '12345' # also OK

Note: When setting node['basic_vsftpd']['config'][...] attributes using Ruby,
each should be set individually, not all at once using a Ruby hash. That is,


default['basic_vsftpd']['config']['option1'] = 'setting1'
default['basic_vsftpd']['config']['option2'] = 'setting2'


default['basic_vsftpd']['config'] = {
'option1' => 'setting1',
'option2' => 'setting2'

Other attributes

  • node['basic_vsftpd']['chroot_list'], default: [ ], used by the chroot_list recipe, list of user names to fill vsftpd's chroot_list file.
  • node['basic_vsftpd']['userlist'], default: [ ], used by the userlist recipe, list of user names to fill vsftpd's userlist file.




Often the real trick is in configuring vsftpd,
for a specific application,
but that's outside the scope of this cookbook.
Please consider documenting useful configuration examples
by adding a page to the wiki.


  1. Fork the repository on Github
  2. Create a named feature branch (like add_component_x)
  3. Write your change
  4. Write tests for your change (if applicable)
  5. Run the tests, ensuring they all pass
  6. Submit a Pull Request using Github

License and Authors

Author: Tom Wilson (tom at

Copyright (C) 2015, Tom Wilson

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU General Public License for more details.

You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

Dependent cookbooks

This cookbook has no specified dependencies.

Contingent cookbooks

There are no cookbooks that are contingent upon this one.

basic_vsftpd CHANGELOG


  • Added Travis CI support
  • Cosmetic changes to license, headers, and readme.


  • Initial release of basic_vsftpd

Check the Markdown Syntax Guide for help with Markdown.

The Github Flavored Markdown page describes the differences between markdown on github and standard markdown.

Foodcritic Metric

0.1.1 failed this metric

FC016: LWRP does not declare a default action: /tmp/cook/c7cb08fc35394ffd85be3f23/basic_vsftpd/resources/user_conf.rb:1
FC023: Prefer conditional attributes: /tmp/cook/c7cb08fc35394ffd85be3f23/basic_vsftpd/recipes/default.rb:26