I'd like a FTP server that would serve only some of my user's home directory. Note that I don't want to enable ssh access for those users and the FTP should serve /home/username/ and nothing else. For instance, if my username is bob and I would log onto the ftp, I would get the directory listing of /home/bob/ but wouldn't be able to access /home/.
Which FTP server would be suited for this?
I always reccomend VSFTPD
http://www.debianhelp.co.uk/vsftpd.htm
Even if you don't want to allow SSH, I'd still recommend sftp instead of FTP, because of the extra security and configurability. sftp can be configured not to allow shell access, and stick to only ftp-like functionality
If it was me... I'd use any non-glibC regex expanding server on a BSD platform. Stock FreeBSD FTP comes to mind.
FTP servers have a horrible security records.
Or use SFTP if you can help it and secure the control channels too, it also plays better with client side firewalls.
I also would recommend to check first vsftpd.
Another possible choice is proftpd, which has plenty of configuration options.
VSFTPD, just like everyone else is saying.
Find a good tutorial and follow it letter for letter and you will be fine. I have tried lots of different FTP programs over the years and VSFTPD is my favorite.
I am pretty sure that the SSHD daemon has support for FTP protocols (via sftp-server subsystem)...so, if you connect to port 22 through your firewall with a tool such as PSFTP then it will automatically tunnel to port 21 or emulate it.
http://www.openbsd.org/cgi-bin/man.cgi?query=sftp-server&sektion=8
I admit, that it might be a OpenBSD option only, but its a thought that you should think about.