I'm working on doing a solution for a client/friend of mine, and basically what I'm wondering is what application/method would be the best approach for this.

I'm wanting to host files via a linux server and enable people to log into this server and only open/view or open/modify files that they have permission to. I'd also like this to be expandable so that I could potentially offer this as a service to other people/small businesses via the same box and config.

I was thinking about using FTP to accomplish this (vsftpd), and grouping the users in their own private group, and then just restrict the files based on their group. That way if I ever got more people using this service, I could just create another group for the other users.

My other idea was to just setup a VPN to the server, and also setup Samba with the shared files and set the permissions that way, and then they could just VPN into the system, but not really fond of that idea, as VPN is kinda slow.

Is there a better way/method to approach something like this? Any thoughts/ideas will be greatly appreciated!