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.
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
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.
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
).
Sim, scripts (arquivos não binários) precisam de permissão de r + x para serem executados.
Tags permissions php ubuntu php-cli