Primeiro, configure contas Unix separadas para cada usuário. Associe essas contas ao servidor FTP. Embora realmente, você deve usar FTP Seguro via SSH. Com as versões mais recentes do OpenSSH, você pode configurar contas "somente SFTP" que são Chrooted no diretório inicial desse usuário. Bam! Agora você tem usuários que efetuam login com segurança em seus próprios diretórios base sem visibilidade para todo o sistema de arquivos. Os arquivos são escritos usando suas próprias permissões de usuário / grupo.
Em seguida, você pode configurar o FastCGI para executar com permissões de usuário individuais. Parece complicado, mas há um tutorial disponível aqui: Como configurar o FastCGI com Permissões Individuais
Esta é provavelmente a melhor abordagem (embora seja a mais complexa) se você estiver tentando configurar hospedagem compartilhada para vários usuários, especialmente se eles forem usuários "não confiáveis". Desta forma, ninguém será capaz de usar scripts PHP para atrapalhar os arquivos uns dos outros.
Se você pode viver com o fato de que um usuário pode acessar maliciosamente arquivos de outro usuário, você pode continuar permitindo que o FastCGI seja executado como www-data. Em seguida, quando você configurar o diretório inicial de cada usuário, crie os arquivos de propriedade do grupo www-data GROUP. Em seguida, defina o bit do comutador em chmod (por exemplo, chmod 2770 em vez de apenas 770). Isso forçará os arquivos recém-criados a herdarem o proprietário do grupo de dados www e permitirá que o FastCGI os leia / grave.
Ufa! Isso foi prolixo. Deixe-me saber como acaba por postar um comentário aqui!