Os arquivos PHP precisam de permissão de leitura para serem executados na CLI?

2

Eu tenho um arquivo php test.php

#!/bin/php

<?php
  echo "test";
?>

Este arquivo pertence a root e suas permissões são estas

-rwxr-x--x 

então 'outros' podem executar, mas não podem ler.

Quando logado como outro usuário que não root e tentando executar este arquivo a partir da linha de comando

php test.php 

Obteve o seguinte erro

Could not open input file: test.php

Se for dada permissão + r, funciona.

Achei que somente a permissão para execução era necessária.

Um arquivo PHP precisa de permissão de leitura para 'outros' serem executados na linha de comando?

Nota: usando o Ubuntu 10.04 LTS e o PHP 5.3.2

    
por Pedro Carvalho 02.09.2010 / 12:38

4 respostas

8

Ter permissão para executar somente é bom se for um binário. Os scripts devem ter permissão de leitura para que seu intérprete possa lê-los.

    
por 02.09.2010 / 12:41
2

Se você executar o script diretamente usando o caminho completo ou ./test.php com uma linha shebang, ele precisará ser executável. Se você especificar o interpretador (ou seja, php) é o interpretador que precisa ser capaz de executar código, então neste caso ele só precisa ler o código.

    
por 02.09.2010 / 12:41
1

Sim, o arquivo precisa ser legível para o usuário com o qual você tenta executá-lo. Em uma nota lateral, o bit executável não precisa ser definido se você o chamar da maneira que você faz ( php /path/to/script.php ).

    
por 02.09.2010 / 12:42
0

Sim, scripts (arquivos não binários) precisam de permissão de r + x para serem executados.

    
por 02.09.2010 / 14:01