July 6, 2021 . 2 MIN READ
vsFTPd, ProFTPD and PureFTPd are great choices for an FTP server that all work well. Each has a GUI applications available to help manage settings. However PureFTPd is lightweight, supports MLST/MLSD, supports virtual folders using symbolic links (symlinks) and supports the SITE UTIME command required to synchronize file date/time stamps when you transfer them. It is therefore the FTP server that typically I recommend on Linux.
To install PureFTPd in Ubuntu (and probably most Debian based releases), execute the following command and a terminal/shell prompt:
sudo apt-get install pure-ftpd
By the way, if for any reason you mess-up the Pure-FTPD installation and want to start over, you can uninstall it completely using all of the following set of commands:
sudo service pure-ftpd stop
sudo apt-get autoremove pure-ftpd
sudo apt-get purge pure-ftpd
sudo rm -r /etc/pure-ftpd
Unlike most FTP servers, Pure-FTPd has almost no configuration files. It is all command-line driven.
If you plan on using virtual users on your ftp-server instead of regular Linux user accounts, start by creating an unprivileged user and group that is dedicated to those users using the following commands:
sudo groupadd ftpgroup
sudo useradd -g ftpgroup -d /dev/null -s /etc ftpuser
sudo chown -R ftpuser:ftpgroup /home/ftpuser
This will also create a shared space called ftpuser. This will be the root of their access on the server if you create your users in chroot jail where they can’t move up to higher levels. Of course you can alternatively create individual directories for each user instead if you don’t want them to have shared space and then optionally link them to a specially setup shared area using a symlink. We’ll get to the topic of symlinks shortly.
The ftpgroup group and the ftpuser user will be needed when you are setting up users in your ftp server.