Usuário PHP no NGINX não acessando arquivo, permissão com grupo

0

Eu sei que o nginx define o usuário para php como www-data. Portanto, o usuário www-data precisa acessar toda a estrutura conforme descrito em esta postagem do blog .

Para expressar meus problemas, terei que definir alguns parâmetros:

  1. Vamos definir o usuário do php como 'www'.
  2. Vamos definir um usuário humano como 'mods'.
  3. Vamos definir um grupo chamado 'webaccess'.
  4. Ambos 1 e 2 são membros de 3.

A ideia aqui é que eu quero o diretório html e todos os sub-arquivos configurados como mods: webaccess 750 para que mods possam fazer upload e modificar arquivos php, e que, obviamente, www possa acessar e manipular solicitações php.

O problema é que, com essa configuração, continuo recebendo o "Nenhum arquivo de entrada especificado". erro. Agora, como o usuário www é um membro do webaccess, eles não deveriam conseguir ler os arquivos php com as permissões do rx set para o grupo?

Para verificar se, na verdade, é um problema de permissões e não um problema de caminho, adicionei um arquivo php na raiz da Web contendo <?php echo exec('whoami'); ?> , com as permissões definidas como 750, recebo o "Nenhum arquivo de entrada especificado". erro. Então eu mudo as permissões para 755 e depois recebo o usuário 'www'.

    
por Matthew Cordaro 08.10.2014 / 20:15

1 resposta

1

Em um shell não interativo, é possível que seu usuário 'www' esteja recebendo apenas seu grupo primário (como definido em / etc / passwd) e não quaisquer grupos adicionais (como definido em /etc/group).

Você provavelmente pode testar se esse for o caso usando:

<?php echo exec('id'); ?>

Se o webaccess não estiver listado nos grupos, provavelmente é por isso que ele só pode ler os arquivos quando Outro tem acesso.

EDITAR:

Esse problema é semelhante a um dwieeb ( link )

Ah, I found the problem. Yes, I restarted Nginx, but the php-fpm daemon must be restarted as well when http is added to the group for my domain.

Se você não tiver feito isso desde que adicionou www ao webaccess, tente reiniciar o Nginx e o php-fpm.

    
por 08.10.2014 / 21:22