As for good FTP server for Ubuntu I’ve choosen
vsftp server, though it has some glitches (more here), after fairly good response in the Internet. Many guides shows how to configure and use
vsftp on local users, though giving them, by default, access only to their home folder. And allowing them to access server via SSH.
Which is not, what we want in most cases.
I’ve found a good guide, which shows you how to add ftp users with access to folder inside WWW root only.
You can find this guide here. Follow it step-by-step, to install and configure
vsftp and to add non-SSH users, that is the one, that won’t be able to access your server via SSH. In the same time, they’ll have only access to selected folder inside WWW root. Which is most perfect solution for creating users, that will only able to update their own websites, with absolutely no access to other server’s or system’s parts.
Following above mentioned guide, you should replace any reference to
/path/to/your/dir to a subfolder created in your WWW root folder. In case of Ubuntu 12.04 LTS, this would be
/var/www/site-name for example. This way you’ll give newly create user access to only his or her site files.
Consider, that mentioned guide has a small bug. In the step previous before last (that is: “Create a usergroup and add ‘username’ to it“) first command to execute is wrong. Instead of:
sudo addgroup username
you should certinally execute:
sudo addgroup ftpusers
Also, if you’re using Ubuntu 12.04 LTS or any other that has
vsftp 2.3.5 as the newest version, you’re strongly advised to update it manually to 3.0+ version, to avoid
500 OOPS: vsftpd: refusing to run with writable root inside chroot() error. More [here](Fixing 500 OOPS vsftpd refusing to run with writable root inside chroot on Ubuntu 12.04.txt).
There is a very good text in Ubuntu Help about
vsftpd along with great explanation of all the issues, configuration switches etc.