Setting up virtual users in vsftpd

I’m trying to set up virtual users for an FTP server in a Linux box, but I’m not sure if the server I’ve picked up (vsftpd) can do what I need. My requirements are:

  1. The FTP accounts are inside a real Linux user’s home directory, let’s call it “project”. So the accounts need to be inside it, say:

    • /home/project/../user1
    • /home/project/../user2
  2. That user “project” needs to have shell access, but the virtual users don’t.

  3. The virtual users need to be chrooted inside their own subdirectories: that is, inside /home/project/../user1, /home/project/../user2, etc.

  4. The uploaded files need to have the same UID/GID as the “project” user.

Now, my point is contention is that, according to this tutorial, vsftpd cannot do this:

…When chroot is enabled for local users, they are restricted to their
home directory by default. However, because of the way vsftpd secures
the directory, it must not be writable by the user.

The solution they offer is to create a subfolder inside the user’s directory, make it owned by “nobody” and remove write permissions for the user… but that’s not what I need. I need everything inside that subdirectory to be owned and writable by the original user.

Is there any way to do this with vsftpd? Perhaps with a different FTP server?