Java - ejecutar comando con Process

 
Vista:

ejecutar comando con Process

Publicado por José Luis Cetina (113 intervenciones) el 04/11/2006 07:19:42
HOla, buenas tardes, alguien me puede echar la mano? tengo el siguiente problema:
Estoy haciendo un pequeño programa en java desde linux, pero el programa necesita ejecutar algunos procesos
pero estos procesos para ejecutarse se necesita estar logeado como root, existe alguna forma de que por ejemplo
con un cuadro de dialogo (MessageDialog) pueda escribir la contraseña de root y asi poder ya tener permiso de "linux"
para poder ejecutar los procesos que yo quiero.
el problema es que no se donde mandar la contraseña escrita en el cuadro de dialogo para que el sistema me deje poder
ejecutar mis procesos, me refiero a mandar a que no se donde tenga que auntentificarse.
estaria correcto esto?
.
.
.
.
..
b1.addActionListener(new ActionListener() {
public void actionPerformed (ActionEvent evento)
{
String exec = "su";
Runtime r = Runtime.getRuntime();
Process p = r.exec(exec);

InputStream is = p.getInputStream();
BufferedReader br = new BufferedReader (new InputStreamReader (is));

// Se lee la primera linea
String aux = br.readLine();


while (aux!=null)
{
// Se escribe la linea en pantalla

System.out.println (aux);

// y se lee la siguiente.
aux = br.readLine();
}



}
catch(Exception ww)
{
JOptionPane.showMessageDialog(null,"NO SE EJECUTO EL PROCESS","",JOptionPane.WARNING_MESSAGE);

}
. });
.
.
.
.
osea cuando yo apreto mi boton B1, se ejecuta el proceso sudo, pero realmente no obtengo ninguna salida impresa,
simplemente como que si no se ejecutara nada.
alguien me podría echar la mano por favor.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:ejecutar comando con Process

Publicado por chuidiang (950 intervenciones) el 04/11/2006 14:00:38
Hola:

No sé si te funcionará o no. Un su simplemente te cambia de usuario y termina el proceso. Luego no podrás escribir comandos.

Prueba a arrancar con Runtime una "bash" con la opción --login

Process p = Runtime.getRuntime().exec("bash --login");

Ahora pide el OutpuProcess de p y desde ahi debes meter en el mismo orden que los pida y terminados en retorno de carro supongo que el usuario (root), el password, los comandos y cuando termines, un "exit" o "quit" para terminar.

Ejecuta eso primero desde una ventana de comandos, para ver exactamente qué tienes que meter y en qué orden.

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar