Ajuda com um programa web php executando um shell script?

0

Sou administrador de sistemas e desenvolvedor da Web no meu trabalho. Eu tenho um programa de php que solicita ao usuário um número de parâmetros que, em seguida, usando esses parâmetros deve executar um script de shell em lotes. Eu tenho esse funcionamento usando:

$cmd =  "echo \"podcast -c $TCname\" | at $_stimehr:$_stimemn $_sdate";

exec("$cmd", $_RetVal);

Isso fica na fila e até mesmo é executado. Mas acredito que tenho um problema de permissões que não consigo conquistar.

Meu apache2 é executado como usuário www-data e tenho certeza de que o script de shell é executável por todos e também minha árvore de diretórios de trabalho atualmente definida como 777 (temporariamente até que eu descubra isso). E isso ainda começa então falhar sem nenhuma mensagem de erro e eu estou logando no wazoo! Sem erros. Parece parar ao tentar alterar diretórios.

Espero que algum outro guru * nix que tenha se deparado com isso antes tenha uma resposta simples, já que eu estou lutando e fazendo tentativa e erro por alguns meses ligado e desligado agora.

    
por bobmct 28.02.2012 / 21:10

1 resposta

1

Sempre que tenho esse tipo de problema, dou www-data um shell em /etc/passwd . Você pode alterá-lo de volta para nologin assim que terminar o teste.

Então eu su - www-data e manualmente tento executar o script. Se você tiver problemas relacionados a permissões, isso deve ajudá-lo a restringir o escopo. A execução de scripts de shell do php pode ocasionalmente produzir resultados inesperados.

    
por 28.02.2012 / 23:47