Ir para conteúdo
Fórum Script Brasil
  • 0

Shell Php


Rafael Sarti

Pergunta

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 para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...