Script .sh via html ou php

Iniciado por rodrigo286, 21 de Julho de 2011, 23:44

tópico anterior - próximo tópico

rodrigo286

Eai gente, sou novo no forum mas ja uso o ubuntu a alguns meses, gostaria de saber se é possivel executar um script .sh do meu VPS usando um script rodando em uma pagina HTML ou PHP,
Isoo seria muito interessante,

Obrigado Agradeço desde já.

Kriptolix

é sim, num script php basta usar a funçao exec, essa funçao roda qualquer comando como se fosse rodado pelo shell, sendo assim é possivel rodar qualquer script usando o comando do shell pra rodar esse script dentro da funçao exec.

ps: com HTML nao é possivel.
Ubuntu Linux 10.10

agente100gelo

Citação de: kriador online 22 de Julho de 2011, 10:46
é sim, num script php basta usar a funçao exec, essa funçao roda qualquer comando como se fosse rodado pelo shell, sendo assim é possivel rodar qualquer script usando o comando do shell pra rodar esse script dentro da funçao exec.

ps: com HTML nao é possivel.

Como diria Tio Ben: "Grandes poderes trazem grandes responsabilidades".
Cuidado com o uso do exec.
Advogado e analista de sistema cearense.
Twitter: @glaydson

rodrigo286

To falando algo tipo assim, la na minha hospedagem tem um arquivo .php pela web de outro lugar eu ativo um comando tipo:

/srcds/27018/start.sh

Isso só digitando o endereço na web tipo:

http://ipdosvps/ligar/ligar.php

agente100gelo

Citação de: rodrigo286 online 22 de Julho de 2011, 11:21
To falando algo tipo assim, la na minha hospedagem tem um arquivo .php pela web de outro lugar eu ativo um comando tipo:

/srcds/27018/start.sh

Isso só digitando o endereço na web tipo:

http://ipdosvps/ligar/ligar.php

Sim, exatamente como o kriador explicou
http://php.net/manual/en/function.exec.php
Advogado e analista de sistema cearense.
Twitter: @glaydson

rodrigo286

Então eu tinha feito assim antes de criar o tópico mas não deu certo, o que eu fiz de errado?

<?phpecho "Ligando Server...";exec("/serversjogos/srcds/orangebox/start_serve_27018.sh start");?>

bitetti

o comando exec e o shell_exec estão todos subordinados ao usuário do apache, geralmente o www-data.
Se ele nao tem permissão ele não funciona mesmo, acho q ele tem q fazer parte do grupo sys.
 

rodrigo286

Voce quer dizer por o start_serve_27018.sh eo start.php com permissao 777?

o start.php ja está assim...

irtigor

Não, significa que quem roda o que foi passado via exec/shell_exec é o usuário do apache. Exemplo simples


<?php$res = shell_exec("whoami 2>&1 &");# vai mostrar quem voce eecho $res?>



Você provavelmente vai ter que alterar o seu script e/ou alguma coisa no sistema, só fornecendo mais detalhes para ser mais preciso.

agente100gelo

O arquivo .sh faz o que?
Você roda sem privilégios de sudo?
Advogado e analista de sistema cearense.
Twitter: @glaydson

rodrigo286

ele vai dar o comando:

./srcds_run -console -game cstrike +map de_dust2 +maxplayers 16 -autoupdate -pingboost 1 -tickrate 66 -port 27018

Esse é o .sh que fica na pasta /serversjogos/srcds/orangebox/

eo start.php fica na pasta /var/www/

Abraço.

agente100gelo

Citação de: rodrigo286 online 23 de Julho de 2011, 14:01
ele vai dar o comando:

./srcds_run -console -game cstrike +map de_dust2 +maxplayers 16 -autoupdate -pingboost 1 -tickrate 66 -port 27018

Esse é o .sh que fica na pasta /serversjogos/srcds/orangebox/

eo start.php fica na pasta /var/www/

Abraço.

Você consegue dar este comando como usuário comum?
Advogado e analista de sistema cearense.
Twitter: @glaydson

rodrigo286

Não, somente como root.

Pois criei um usuario com o adduser pr proftpd, mas essa conta loga mas nao tem permissão pra rodar comando...

irtigor

#13
É realmente necessário rodar isso como root? Fica mais seguro se você não usar um usuário com poder de fazer qualquer coisa. Voltando ao assunto, uma saída seria criar um grupo com poder de rodar isso, depois você adicionaria o usuário que roda o apache nele.

rodrigo286

Bom ja consegui usar paineis feitos para isso no caso GamePanelX e Swiftpanel então não preciso mais disso, obrigado gente, foi resolvido.