+ Responder ao Tópico



  1. #1
    dezoti
    Visitante

    Padrão Php com Java

    Tenho um grande problema, espero que alguem possa me
    ajudar.
    Tenho um programa java que fica recebendo mensagens
    UDPs.
    Se eu starto ele na mão funciona, mas preciso de um
    programa
    em C pra pegar as permissoes, para arrumar as permissoes
    executo o seguinte comando:

    chmod 4750 programa.c
    chmod 4750 programa.class
    chown root:apache programa.c
    chown root:apache programa.class

    segue o programa em C:

    #include<stdio.h>

    int main(){
    int var;

    if((setuid(0)) < 0 && (setgid(0)) <
    0)
    return 0;
    else{

    if(system("java UDPServer &"))
    printf("C: OK");
    else
    printf("C: Erro");
    }
    }

    Mas eu preciso startar este servidor via WEB. Estou
    usando
    PHP, segue abaixo o codigo:
    <?
    if($var=exec("./ex &"))
    echo "PHP: OK<br>".$var;
    else
    echo "PHP: Erro<br>".$var;
    exit(0);
    ?>

    Ele executa o C, mas o servidor naum funciona. Bom se
    alguem puder me ajudar agradeço.
    Valew...

  2. #2

    Padrão Php com Java

    hmmm......pode ser o seguinte.....pra vc startar o servico java, vc precisa estar logado com um usuario especifico?? tipo o root??? pq se sim, quando vc executa via php, ele vai usar as permissoes do usuario q estiver rodando o apache, e se esse programa ficar ouvindo uma porta baixa (<1024) ele nao vai deixar startar msm....

    se for esse o problema o unico jeito (q eu NAO recomendo) eh dar um jeito de dentro do C vc executar com permissao de superusuario.....mas como eu disse....isso eh mto arriscado....seu programa vai ter q ser simplesmente perfeito pra nao dar problemas futuros

  3. #3

    Padrão Php com Java

    So funciona de root eh? que coisa feia, me diz uma coisa, qual porta seu programa em Java esta utilizando? e ONDE ele se faz necessario privelegio de root?


    Vamos eliminar o mal pela raiz.

  4. #4
    dezoti
    Visitante

    Padrão Php com Java

    Eu rodo na porta 14, por sinal vou tentar deixa-lo rodando em portas altas (> que 1024), pois ai pode ser que naum precise ser superusuario. Eu seto as permissoes pro arquivo pro usuario apache, tanto eh que se eu dou permissao para um outro usuario e execut o c com esse usuario ele roda o java. Ai dou as permissoes para o usuario apache, e mando o php chamar... MAs naum estarta....

    Bom, obrigado pelas dicas...

    VAlew...