• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

nakuro

Executar perl scripts em java em modo root

5 mensagens neste tópico

Boas

Tenho uma duvida que não sei como resolver.

Eu tenho vários perl scripts que fazem a instalação de programas que servem de requisitos a uma aplicação que utilizo. Estes perl scripts basicamente fazem um apt-get install...

Eu quero executar estes scripts através do java, e até consigo chama-los através da função:

Process proc = Runtime.getRuntime().exec(comando);

O problema são as permissões, pois o script necessita que eu introduza a password para aceder em modo root.

O que já tentei foi executar o meu programa java em modo root (su -) e este por sua vez chama os perl scripts, mas mesmo assim não funciona.

Alguem sabe uma forma de contornar este problema? ou então conseguir que o perl script entre em modo root ou que não fique a espera que a password seja introduzida?

exemplo do perl script:

#!/usr/bin/perl -w
$retorno=system "aptitude install libiodbc2 libiodbc2-dev";
if($retorno==0){
print ("libiodbc2 and libiodbc2-dev ----->done\n");
}
else{
print "false";
}		

cumprimentos

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

passa-lhes a password pela tua aplicação. Não tens outra solução.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

e como faço isso? já tentei atraves de um ficheiro, mas não funciona, isto é, se fizer algo do genero no perl script:

$retorno=system "aptitude install libiodbc2 libiodbc2-dev<resposta.txt";

e no ficheiro resposta tenho a password.

mas não funciona, isto apenas funciona pa respostas de yes ou no. Ou seja, quando aparece aquelas questões se temos a certeza se queremos instalar ou não.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

em perl recebes um array como parametro, o @ARGV

se executares:

executavel_programa password

a primeira posição do array argv é a password.

Tens aqui um exemplo:

http://www.devdaily.com/perl/edu/qanda/plqa00001.shtml

Mas como faço para no perl Script inserir essa password no comando?, de modo a que a password seja passada para o comando (neste caso o sudo apt-get...) e não seja pedida. Não sei se me estão a perceber, mas se chamar o perl script como está,ele pede-me a password de root, e não tou a ver como é que posso passar directamente a password pela linha de comandos para o comando sem que esta seja pedida quando executar o script.

Cumprimentos

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora