Installing and Configuring Pure-FTPD on RHEL / CentOS 7
This article will teach you how to install and configure Pure-FTPD on CentOS 7 without a control panel (such as CPanel). Pure-FTPD is a simple File Transfer Protocol (FTP) server. It is designed to use resources efficiently and supports useful features like secure connections, IPv6, and virtual users (for jailing security).
*Important Note: Do not follow this guide if you are using a control panel such as CPanel or DirectAdmin! Pure-FTPD is already installed and can easily be configured with a point-and-click interface.
Before we get started, you will need a CentOS 7 installation with either root or sudo access. The entire installation will take approximately 15 minutes.
Step 1: When you are ready to begin, go ahead and install Pure-FTPD using yum.
yum install pure-ftpd
Step 2: Edit the default configuration (/etc/pure-ftpd/pure-ftpd.conf) and make the changes below.
-PAMAuthentication yes
+#PAMAuthentication yes
-#PureDB /etc/pure-ftpd/pureftpd.pdb
+PureDB /etc/pure-ftpd/pureftpd.pdb
Save and close the file.
Step 3: Configure Service
systemctl enable pure-ftpd
systemctl start pure-ftpd
Step 4: Create a new user account using pure-pw.
pure-pw useradd $USERNAME -u $USER -g $GROUP -d /path/to/ftp/directory
$USERNAME = FTP username
$USER = System username (such as apache or www-data)
$GROUP = System group name (such as apache or www-data)
/path/to/ftp/directory = Directory location for the FTP to jail to (such as /var/www/htdocs/)
Step 5: Save Pure-FTPD user database
pure-pw mkdb
systemctl reload pure-ftpd
You should now be able to connect using the new FTP user you setup!
Troubleshooting Note: If everything above was setup correctly but the user cannot log in, make sure that the system username/groupname you used is higher than 500.