Jump to content

Executar perl scripts em java em modo root


Recommended Posts

Posted

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

Posted

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.

Posted

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.