Eu tenho uma rede de sites onde todos os sites compartilham a mesma pasta "imagens". Eu criei / home / _images / entities e criei um link simbólico de todos os sites, e ele funciona muito bem com o Apache, quando eu abro / images / em qualquer um dos sites eu recebo uma lista de imagens e posso visualizá-las.
O problema é o suPHP que altera o ID do processo do script PHP para o ID do proprietário do arquivo, portanto, quando carrego site1.com , todos os scripts são executados como user1 ( e arquivos / pastas criados com esses scripts pertencem a user1: user1). Quando carrego site2.com , todos os scripts são executados como user2 (e os arquivos / pastas criados com esses scripts pertencem a user2: user2). Todos esses usuários não pertencem ao mesmo grupo, e eu não gostaria de mudar isso, pois é cPanel / WHM servidor, então eu tenho medo de estragar algo se eu mudar (primário?) Grupo de todos os usuários.
Portanto, preciso configurá-lo de modo que todas as pastas e arquivos recém-criados em / home / _images / entities (de propriedade do root) tenham permissões de leitura / gravação para todos.
Aqui está o comando que eu usei:
setfacl -Rdm o::rwx /home/_images/entities
Para verificar:
root@server1 [~]# getfacl /home/_images/entities/
getfacl: Removing leading '/' from absolute path names
# file: home/_images/entities/
# owner: root
# group: root
user::rwx
group::rwx
other::rwx
default:user::rwx
default:group::rwx
default:other::rwx
Isso parece bom, no entanto, quando eu tento fazer upload de uma imagem via site1.com, é assim:
root@server1 [/home/_images/entities]# ls -l
total 24
drwxrwxrwx+ 5 root root 4096 Jan 14 06:25 ./
drwxrwxrwx 5 root root 4096 Jan 12 13:08 ../
drwxrwxr-x+ 3 user1 user1 4096 Jan 14 06:25 1/
E na pasta "1" está a imagem (e a pasta thumbs):
root@server1 [/home/_images/entities/1]# ls -l
total 236
drwxrwxr-x+ 3 user1 user1 4096 Jan 14 06:25 ./
drwxrwxrwx+ 5 root root 4096 Jan 14 06:25 ../
-rw-rw-rw- 1 user1 user1 225569 Jan 14 06:25 689048f221ab7c556f4d482a9d92b2d6.jpg
drwxrwxr-x+ 2 user1 user1 4096 Jan 14 06:25 thumbs/
Minhas perguntas:
1) Por que as pastas recém-criadas não têm permissões de "gravação" para todos os outros usuários [não usuário e / ou grupo]? Se eu enviar a primeira imagem do site1.com, não será possível enviar outras imagens de nenhum outro site, enquanto todos os sites poderão exibi-las.
2) Qual é o + no final da lista de permissões? (drwxrwxr-x +)
3) Por que os arquivos recém-criados têm apenas permissões "rw" para usuários, grupos e todos os outros, e não permissões de execução? Eu realmente não preciso executar flag set aqui, mas a partir do meu comando você pode ver que eu defino "o :: rwx" por isso deve estar lá (ou não?)
Na verdade, o problema real é o número 1 - outros usuários não podem gravar nessa pasta para que os usuários não possam fazer upload de imagens de outros sites, nem outros sites podem criar miniaturas (ausentes).