Esta é uma coisa do WordPress, certo? Eu estava tendo o mesmo problema, e estava culpando o Apache também, mas a solução que encontrei na verdade era uma configuração do WordPress.
Veja link
No meu servidor particular, o WordPress estava usando suas próprias configurações de permissão de arquivo (e ignorando o bit SGID) da mesma maneira que você estava descrevendo. Eu não sei qual é a razão, mas parece intencional. A solução para mim foi adicionar a máscara de permissão específica ao arquivo wp-config.php:
define( 'FS_CHMOD_DIR', 02775 );
-
0 == octal
-
2 == conjunto SGID
-
755 == rwxrw-rw- permissões
Com os arquivos e diretórios existentes do WordPress com a permissão correta (incluindo SGID em todos os diretórios), novos arquivos e diretórios criados pelo WordPress (plugins, temas, uploads) usaram a máscara de arquivo 02755 e herdaram a propriedade de grupo correta. OBSERVE que o usuário do Apache www-data deve estar no grupo também.
Mais detalhes:
-
grupo criado para ser usado por todos os usuários SFTP e Apache: sudo groupadd sftp-grp.
-
adicione o Apache ao grupo sftp-grp: sudo usermod -a -G sftp -grp www-data
-
adicione usuários regulares ao grupo sftp-grp, como acima.
-
defina todos os arquivos do WordPress pertencentes ao Apache, mas com o grupo compartilhado: sudo chown -R www-data: sftp-grp / var / www / caminho-para-wordpress
-
certifique-se de que todos os arquivos do WordPress são de leitura / gravação em grupo (talvez queira reconsiderar para .htaccess e wp-config.php): sudo chmod -R g + rw / var / www / caminho-para- wordpress
-
adicione o bit SGID ao diretório principal do WordPress: sudo chmod g + s / var / www / caminho-para-wordpress
-
... e todos os subdiretórios: sudo encontre / var / www / caminho-para-wordpress -tipo d -exec chmod g + s '{}' \;
-
adicionado ao wp-config.php: define ('FS_CHMOD_DIR', 02775);