Pular para o conteúdo

Erro ao criar arquivo usando php + shell

Responder tópico
  • Denunciar
  • Indicar

1. Erro ao criar arquivo usando php + shell

Enviado em 09/11/2010 - 15:56h

companheiros boa tarde!
preciso de uma ajudinha. .vou explicar abaixo a parada!

seguinte:
sofri muito aqui implementando regras de filtros usando iptables, porém desenvolvi uma ferramente q em breve postarei aqui no forum pra todos.. que gera automaticamente um script de iptables, atraves de php + mysql,

o problema está: quando o php gera o arquivo chamado firewall.sh, ele gera corretamente, mais nao adianta eu dar a permissao chmod +x firewall.sh, que ele não executa no shell..
fiz a verificação de permissoes ls -la firewall.sh
resposta: -rw-r--r-- 1 www-data root 11867 Nov 9 15:37 firewall.sh
...

mesmo eu dando todas as permissoes a ele, não roda....
porém se eu copiar seu conteudo e dar um touch firewall2.sh com usuario root... chmod +x firewall2.sh ..
e colocar o mesmo conteudo dentro, ele executa..
porque isso?


sei que o problema esta ao criar o arquivo e permissoes com o php, ele esta no grupo www-data, mas como fazer pra ele criar como se fosse o root normalmente? como se eu tivesse criado no shell?

alguem me da uma ajuda..

obrigado!

Responder tópico

2. Erro ao criar arquivo usando php + shell

Enviado em 09/11/2010 - 16:06h

Fala veio,

Cara seguinte, passei esta mesma situação em 2006 quando tive que fazer uma aplicação em php que executasse o comando adduser no centos. Usei o sudo para fazer isso, a cada usuario que ele inseria ele chamava o script do sudo que eu fiz.

Segue um exemplo abaixo:

----
<?php
passthru('echo Executando aplicação como root | sudo /usr/bin/php -f caminhodoscriptphp');
?>
---

Espero ter ajudado

Elizandro Medina

3. prosseguindo com duvida

Enviado em 09/11/2010 - 16:43h

entao, estou sando o seguinte script php
<?php
mysql_free_result($firewall_gerado);

$dados = $row_firewall_gerado['firewall'];

$fp = fopen("firewall.sh", "w+"); // abre o arquivo
fwrite($fp, $dados); // grava no arquivo. Se o arquivo não existir ele será criado
fclose($fp); // fecha o arquivo
echo "\n firewall gerado corretamente\n";
//system('./mover.sh ');
echo $dados;
?>

mas nao estou conseguindo entender como uso sua função.. obrigado!

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder