How does a vsftpd server work and how to configure it?

Solution 1:

Definitely the previous admin did't do a good job.

So first of all if you add the following lines in your vsftpd.conf you will chroot users in their home directory.

chroot_list_enable=YES
chroot_local_user=YES

# a list of users which are NOT to be placed in a chroot() jail
chroot_list_file=/etc/vsftpd/chroot_list

For managing users you can create virtual one (have a look here), but if you think that solution is too complex just use pam_listfile.so module to deny ftp users the ssh access or use pam_shells.so. Whichever is easier for you. Just be careful not to block the ssh server to valid users :)

Solution 2:

Sounds like you need a chroot'ed ftp server with non-system users, I think this wiki howto has the answers you need.

Solution 3:

You should use virtual users as FTP users.

Follow this post: http://howto.gumph.org/content/setup-virtual-users-and-directories-in-vsftpd/