How to Install and Configure vsftpd on Ubuntu 14.04 LTS

Reading Time: 2 minutesFTP (File Transfer Protocol) is probably the most popular method of uploading files to a server; a wide array of FTP servers, such as vsftpd, and clients exist for every platform.

Pre-Flight Check

  • These instructions are intended specifically for installing the vsfptd on Ubuntu 14.04 LTS.
  • I’ll be working from a Liquid Web Core Managed Ubuntu 14.04 LTS server, and I’ll be logged in as root.

Step 1: Install vsftpd

Warning: FTP data is insecure; traffic is not encrypted, and all transmissions are clear text (including usernames, passwords, commands, and data). Consider securing your FTP connection with SSL/TLS.
First, you’ll follow a simple best practice: ensuring the list of available packages is up to date before installing anything new. apt-get update Then let’s install vsftpd and any required packages: apt-get -y install vsftpd

Step 2: Configure vsftpd

For a refresher on editing files with vim see: New User Tutorial: Overview of the Vim Text Editor Let’s edit the configuration file for vsftpd: vim /etc/vsftpd.conf Disallow anonymous, unidentified users to access files via FTP; change the anonymous_enable setting to NO: anonymous_enable=NO Allow local uses to login by changing the local_enable setting to YES: local_enable=YES If you want local user to be able to write to a directory, then change the write_enable setting to YES: write_enable=YES Local users will be ‘chroot jailed’ and they will be denied access to any other part of the server; change the chroot_local_user setting to YES: chroot_local_user=YES Exit and save the file with the command :wq. Restart the vsftpd service: service vsftpd restart

Step 3: Configure the User’s Home Directory

With certain version of vsftpd you may receive the following error: 500 OOPS: vsftpd: refusing to run with writable root inside chroot(). Not to worry! Create a new directory for the user receiving the error (user2 in this case) that is a subdirectory of their home directory (/home/user2). For example: Fix permissions for user2‘s home directory: chmod a-w /home/user2/ Make a new directory for uploading files: mkdir /home/user2/files chown user2:user2 /home/user2/files/
Refer a friend and get hosting credit!