Permissões de arquivo para ambiente de hospedagem compartilhada

Permissões de arquivo para ambiente de hospedagem compartilhada

Estou tentando configurar um ambiente de hospedagem compartilhada onde os usuários recebem acesso SFTP a uma ou várias pastas. Considere o seguinte cenário:

/var/www/contém vários diretórios que representam domínios. Os usuários podem adicionar, modificar ou excluir arquivos em diretórios baseados em ACLs, para que o usuário johnpossa ter acesso total /var/www/domain1.com, /var/www/domain2.orgmas não /var/www/domain3.de. Ao mesmo tempo, é claro, o servidor web deve ser capaz de ler os arquivos em todos os diretórios.

O que não compreendo completamente é como garantir tudo de tal forma que

  • todos os usuários são presos /var/www/e veem apenas os domínios (subpastas) que têm permissão para ver
  • o usuário Apache www-datasó tem acesso de leitura a todas as pastas
  • O PHP tem acesso de gravação a algumas pastas, como uma pasta de uploads de usuários ou uma pasta de log dentro/var/www/domain/
  • novos arquivos enviados via SFTP obtêm as permissões corretas automaticamente e o usuário é capaz de especificar qual pasta pode ser escrita pelo PHP sem ser acessível por outros usuários de hospedagem compartilhada

Com PHP quero dizer uma instância PHP-FPM com cada domínio sendo uma entrada separada pool.de o usuário livremente configurável.

Minhas idéias até agora eram adicionar um grupo chamado sftpe configurar sshdpara prender os usuários pertencentes ao grupo sftp, /var/www/permitir autenticação por senha para eles e adicionar ForceCommand internal-sftp. Então eu definiria ACLs padrão recursivamente para as pastas internas, /var/www/para que os usuários certos tivessem acesso aos diretórios certos. Mas o que defino como usuário e grupo proprietário das pastas? Tenho que ajustar o umask? Qual é o usuário e grupo apropriado para a respectiva instância do pool PHP-FPM?

informação relacionada