Erro ao criar arquivo usando php + shell

1. Erro ao criar arquivo usando php + shell

Ricardo Bras da Silva Neves
ricardobras

(usa Debian)

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!



  


2. Erro ao criar arquivo usando php + shell

Elizandro Medina
elizandromedina

(usa CentOS)

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

Ricardo Bras da Silva Neves
ricardobras

(usa Debian)

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!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts