Altere o grupo de todos os arquivos / diretórios para www-data e ative o setgid:
sudo chmod -R g+s /path/to/www/directory/
Todos os arquivos e diretórios serão criados com o grupo www-data a partir de agora.
Estou trabalhando com dois usuários: eu e o www-data. Cada usuário tem seu próprio grupo por padrão. Quero poder conceder permissões de leitura, gravação e / ou execução a ambos os usuários, sem conceder as permissões ao público.
Meu entendimento do sistema de permissões de arquivos do Linux é que, se eu tiver o seguinte arquivo:
test.php me:me 770
e o grupo me contém os usuários me e www-data, então ambos os usuários teriam permissões completas para o arquivo test.php. Isso não está funcionando, no entanto. Eu adicionei o usuário www-data ao grupo me e defini as permissões para 770, mas o Apache diz que as permissões foram negadas. Se eu mudar o grupo de arquivos para www-data para que pareça
test.php me:www-data 770
o arquivo é carregado corretamente. O problema é que eu carrego os arquivos pelo ftp sob o usuário me. É fácil mudar o grupo, mas fica incrivelmente tedioso se eu tiver que usar o SSH no servidor toda vez que eu fizer o upload de um novo arquivo para mudar o grupo. Meu entendimento é que grupos existem apenas para circunstâncias como essas, mas não entendo por que não está funcionando.
Altere o grupo de todos os arquivos / diretórios para www-data e ative o setgid:
sudo chmod -R g+s /path/to/www/directory/
Todos os arquivos e diretórios serão criados com o grupo www-data a partir de agora.