Definição de permissões padrão em arquivos / pastas recém-criados [fechados]

3

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).

    
por Avram 14.01.2015 / 15:18

1 resposta

1
  1. Os aplicativos, neste caso o suPHP, podem substituir os padrões e definir explicitamente as permissões desejadas. Se o suPHP forçar as permissões de "outro" a serem algo além do que você deseja, uma solução alternativa é adicionar uma ACL para um grupo diferente, digamos usuários, que contenha user1 e todos os outros usuários que você deseja:

    setfacl -Rdm g:users:rwx /home/_images/entities
    

    Então, o suPHP provavelmente deixará essa permissão em paz. Observe que isso também é melhor do ponto de vista de segurança, porque você está concedendo permissão de gravação apenas ao grupo de usuários, em vez de ao mundo.

  2. O + significa que uma ACL está presente, portanto, outras permissões estão em vigor além do conjunto ugo listado. Você terá que executar o getfacl para vê-los.

  3. Acho que esta é a mesma resposta como # 1: porque suPHP está explicitamente substituindo a permissão de execução. A mesma solução para o número 1 deve ser aplicada.

por 14.01.2015 / 16:09