Jump to content
Fórum Script Brasil
  • 0

Shell Php


Rafael Sarti
 Share

Question

Bom Galera,

Primeiro post meu aqui vamos lá com a minha duvida que não achei nada na internet.

Seguinte estou fazendo um sistema que e preciso dar comandos para a shell é simples

<?

shell_exec("shutdown -r 0") ;

?>

Mais quando executo essa pagina pelo Browser nada acontece, mais se entrar pela shell e digitar

#server: php /var/www/reiniciar.php

Ai a maquina reiniciar e executa o comando normalmente..

alguém pode me ajudar?

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0
Seguinte estou fazendo um sistema que e preciso dar comandos para a shell é simples

<?

shell_exec("shutdown -r 0") ;

?>

Mais quando executo essa pagina pelo Browser nada acontece, mais se entrar pela shell e digitar

#server: php /var/www/reiniciar.php

Ai a maquina reiniciar e executa o comando normalmente..

alguém pode me ajudar?

Quando voce executa a página pelo Browser o usuário que executa não é o root e sim o nobody.

Se voce tentar executar esse comando como nobody receberá um erro como resultado.

Para resolver isso voce poderia executar as páginas como root, mas isso é muito inseguro.

Na minha opinião uma opcão mais segura seria ativar o bit SUID do comando desejado, assim:

chmod 4755 /sbin/shutdown

mas ai voce pergunta o que seria esse bit SUID?

Esse bit SUID foi justamente criado para esse seu problema. É um tipo de permissão especial que permite que um usuário comum execute algo que ele não tenha permissão.

Link to comment
Share on other sites

  • 0

mas assim você está dando permissões para qualquer usuário desligar o PC, isso é um risco também!

Mais quando executo essa pagina pelo Browser nada acontece, mais se entrar pela shell e digitar

#server: php /var/www/reiniciar.php

Ai a maquina reiniciar e executa o comando normalmente..

Quando você executa php pela linha de comando, o processo roda sob o usuário que fez a requisição, se for pela web, sempre vai ser o usuário do apache (wwrun, nobody...)

Ou seja, pela linha de comando o teu script vai fazer o que o usuário que executa ele tem permissão.

Link to comment
Share on other sites

  • 0

O risco é de desligar o computador.

E é justamente isso que ele precisa.

mas assim você está dando permissões para qualquer usuário desligar o PC, isso é um risco também!
Mais quando executo essa pagina pelo Browser nada acontece, mais se entrar pela shell e digitar

#server: php /var/www/reiniciar.php

Ai a maquina reiniciar e executa o comando normalmente..

Quando você executa php pela linha de comando, o processo roda sob o usuário que fez a requisição, se for pela web, sempre vai ser o usuário do apache (wwrun, nobody...)

Ou seja, pela linha de comando o teu script vai fazer o que o usuário que executa ele tem permissão.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      150.1k
    • Total Posts
      647k
×
×
  • Create New...