Evitei a falta de recursos de troca de usuários do Apache usando o Posix ACL. Eles permitem que você adicione mais entradas de grupos e usuários em todos os arquivos e também permite a configuração de permissões padrão nos diretórios que são automaticamente adicionados a cada arquivo criado dentro.
Se eu acho certo e você está executando o Linux, você pode ativar o Posix ACL você precisa remontar seu sistema de arquivos com a opção acl
. Em seguida, você pode usar setfacl
e getfacl
para gerenciar permissões adicionais. Nos sistemas baseados em Debian, estas ferramentas podem ser encontradas no pacote acl
. Você pode ler mais sobre o Posix ACL em man acl
e man setfacl
. O Posix ACL também está disponível em alguns sistemas BSD e MacOS, mas nunca os usei lá.
Por exemplo, você pode configurar uma pasta na qual o grupo fileserver
sempre tenha acesso de leitura e gravação a todos os arquivos em:
setfacl -Rm default:group:fileserver:rw,group:fileserver:rx /srv/fileserver
Isso resultaria em getfacl /srv/fileserver
informando algo assim:
# file: /srv/fileserver
# owner: aef
# group: aef
user::rwx
group::rwx
group:fileserver:r-x
mask::rwx
other::r-x
default:user::rwx
default:group::rwx
default:group:fileserver:rw-
default:mask::rwx
default:other::r-x
Um aviso: Você provavelmente precisará de algum tempo para se acostumar com as Posix ACLs, elas adicionam um pouco mais de complexidade, mesmo que não pareça no começo.