Como a pergunta é o resultado da pesquisa no google quando perguntado "usuário separado do host virtual do apache", eu gostaria de dar uma resposta mais elaborada com base em esta resposta . Minha resposta não cobre o uso de PHP e GCI (você usaria suPHP). Ele se concentra no PHP quando usado como um módulo do apache.
Você pode usar o módulo do apache apache2-mpm-itk . Está disponível para a versão atual do apache 2.4. Ele vem com a diretiva AssignUserID
. Essa diretiva define o usuário e o grupo com o qual a solicitação de um host virtual é tratada. Este é um exemplo da configuração do site do Apache com o qual acabei:
<VirtualHost *:80>
ServerName www.site1.com
DocumentRoot /home/www/site1.com
AssignUserID site1 www-data
php_admin_value open_basedir /home/www/site1.com
...
</VirtualHost>
Naturalmente, isso só melhora a segurança, desde que os DocumentRoots individuais sejam de propriedade de seus respectivos usuários e não sejam acessíveis em grupo.
Para mais segurança relacionada ao PHP, os scripts são aprisionados no DocumentRoot
com a restrição open_basedir.
Quanto ao acesso ao arquivo backend, eu prefiro o SFTP com o chroot .
Nota: o apache2-mpm-itk é atualmente incompatível com o módulo http2 do Apache.