Сразу скажу практики администрирования веба никогда не было, но я вижу это так:
Есть такой модуль apache2-mpm-itk, он позволяет запускать VirtualHost от имени отдельного пользователя. С учетом этого модуля структура папок на мой взгляд должна выглядеть так:
1.) /var/www - права 755, пользователь www-data, группа www-data
2.) /var/www/domains - права 755, пользователь www-data, группа www-data(пользователь по умолчанию в apache)
3.) /var/www/domains/domain1.com - права 700, пользователь user-domain1, группа www-data
4.) права у файлов и папок 700
В virtualhost добавляем строчку с указанием пользователя-владельца сайта
AssignUserId user-domain1 www-data
С ftp думаю все ясно, права 700 дают доступ только для владельца директории.