O que você pediu é uma boa ideia, mas na prática pode ser muito difícil de implementar.
Não há realmente nenhuma maneira de impedir que o invasor veja arquivos acessíveis ao servidor da web ... porque o ataque está chegando via servidor da web, não é possível bloquear o acesso sem tornar os arquivos completamente inacessíveis. Você pode proteger outros dados confidenciais em seu sistema, certificando-se de que eles só possam ser acessados por grupos específicos ... por exemplo, certifique-se de que apenas o grupo "mail" possa acessar nosso mailq. Isso significa (a) criar os grupos necessários, (b) definir as permissões necessárias de arquivo / diretório e (c) assegurar que qualquer daemons seja executado com as credenciais corretas.
Se você está procurando uma solução mais robusta, pode usar algum tipo de solução leve de virtualização (por exemplo, Linux Containers, link ) para criar servidores privados virtuais para cada site, mas isso exige mais tempo e recursos.
Você pode executar cada website como um ID de usuário separado. Isso é um pouco complicado; o mais fácil é executar uma instância do Apache para cada site em uma porta específica e usar o módulo Proxy do Apache para delegar acesso do seu servidor principal na porta 80. Como essa solução envolve uma instância do Apache por site, ela também tem conseqüências de recursos. Existem módulos que permitem realizar isso em uma única instância do Apache, consulte link para um exemplo.