I don;t know if this is the best way, but it is the way I found that works. I know and trust my users. They are family and friends or friends of friends.
I ONLY have secure methods of accessing my server. No FTP or IMAP/POP/SMTP in the clear. if the password is set, it is encrypted. This requires a SSL Cert, which I first made a self signed one, but now am on the $30 GoDaddy Cert plan. I use this Cert for all my stuff and FORCE the method. It was tricky to setup but I feel well worth it.
So they use WinSCP on Windows or Fugu on Mac.
I setup the websites inside their home directories. For this example the user will be leroy and the site will be example.com
The directly looks like this:
Code:
/home/leroy/www/example.com/htdocs/
/home/leroy/www/example.com/logs/
I then setl the webserver to point the document root to the htdocs directory and the logs into the logs directory. For multiple sites I make multiple directories with the domain name.
Only once this bit me when the user deleted his logs directory, it dorked up the server. I could probably do some permission-fu to prevent this, but in several years this was my only problem.
I even set up my person sites this way, under my user account, the same way. So I only need to login as me to access my websites. Nothing is in the default location.
There is probably some security risk, but I don't know.