Pular para o conteúdo

executar shell no php??

Responder tópico
  • Denunciar
  • Indicar

1. executar shell no php??

Enviado em 14/04/2008 - 11:01h

ola galera td blza?
estou com um serio problema em uma aplicação que estou desenvolvendo, estou tentando executar um shell dentro de uma pagina php- mas ñ estou conseguindo, ja tentei varias funçoes, tais como:

$output = shell_exec('comando');
echo "<pre>$output</pre>";
bom, até aki funcionou mas o problema é q preciso executar muitos comando dentro desta string os comandos são:

entrar como su(sudo su 'user')
entrar como superusuario postgres(su postgres)
executar uma função do postgresql(shp2pgsql -s 4291 'nomedoarquivo 'nomedatabela > 'nomeDoAruivoDeSaida')
após esses passos preciso executar o arquivo que saiu da função(psql -f 'NomeDoArquivoDeSaida' -d NomeDoBanco)

me desculpe se ñ fui claro, creio que vou conseguir ajuda de vcs, pq no meu ponto de vista é o problema é q ñ sei executa varios comandos de uma só vez.
grato a todos!!!!!!!!!

Responder tópico

2. Re: executar shell no php??

Enviado em 14/04/2008 - 14:45h

Em algumas linguagens como o Perl, e até mesmo em banco de dados (mysql) você pode executar comandos do shell por um comando, o system, tipo:
mysql> system clear
Ou teste com o perl:
$ echo "system clear" > teste.pl
$ perl teste.pl
Não estou certo mas acho que o php tbm tem essa função. Teste aí e poste...
Abraço!

3. Re: executar shell no php??

Enviado em 14/04/2008 - 15:29h

então marcos, existe mesmo uma função no php que faz isso é uma função chamada shell_exec(nomeDoComando).
eu até consigo utiliza-la mas o problema é que ñ consigo usa-la com varios comandos, ela entende como uma string apenas.

valeu

4. Re: executar shell no php??

Enviado em 14/04/2008 - 15:33h

hum, estou entendendo teu problema...
Olha, eu tenho quase certeza que essa função já executa como root!
Pensou em criar um script para essa função do postgre e somente rodá-la com o PHP!?

5. Re: executar shell no php??

Enviado em 14/04/2008 - 15:38h

fala ai marcos,
ow valeu pela ajuda mesmo, acho q estou no caminho certo ja estou execuatndo a maioria dos comandos que preciso,só estou com uma duvida: é um pouco perigoso executar esses tipos de comandos né, ja que estou abrindo um caminho no meu s.o. como usuario root.
se estiver errado me corrija
valeu até mais

6. Re: executar shell no php??

Enviado em 15/04/2008 - 13:24h

Sim, realmente é perigoso, é uma brecha no teu servidor...
O ideal seria bloquear essa função e utilizar uma conexão ssh para fazer alterações.

7. Permissão no sudoers

Enviado em 18/05/2010 - 09:25h

Andei pesquisando na net e percebi que todos tem um ponto em comum. Alteração de segurança no arquivo /etc/sodoers

só é possível altera-lo com o usuário root e com o comando chmod 0660 /etc/sudores

depois abra com o bloco de notas e faça as alterações necessárias.

incluíndo a linha abaixo no arquivo você libera acesso para o usuário www

www ALL=NOPASSWD: ALL

assim a função shell_exec("comando") estaria pronta para ser executada. Teóricamente.

Estou com o mesmo problema na distribuição Ubuntu do Linux.

obs: "muitos comandos funcionam porem alguns (os que preciso) estão simplismente não retornam valores."

8. Re: executar shell no php??

Enviado em 18/05/2010 - 16:11h

Opa galera, tive esse problema também, precisava executar o comando arp via php e não estava conseguindo. Conseguir resolver depois de fazer as seguinte alterações:

1 - Alteração arquivo sudoers

#Permissão para o usuário do apache executar o comando arp sem necessidade de senha
www-data ALL=(ALL) NOPASSWD:/usr/sbin/arp

2 - Script php

#Usei a função exec setando o caminho inteiro do comando;
#Intuito de capturar o mac do cliente;
#Fiz a concatenação com o ip do cliente
exec("/usr/sbin/arp -a ".$ip." ", $out);

É isso galera.
Flw

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder