Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Ejecutar un comando como: root

-Tengo el siguiente código para un botón que ejecuta un comando y que muestra la respuesta en un JTextArea:

Runtime comando=Runtime.getRuntime();
try {
Process process=comando.exec("airmon-ng start wlan0");
BufferedReader R=new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while((line=R.readLine())!=null) {
monitor1.append(line+"\n"); }
}catch(Exception ex) {
JOptionPane.showMessageDialog(this, ex.getMessage());
}

-El problema esta en que me devuelve un error:

Run it as root.

-He probado de ponerle sudo delante (pero no se como hacer para poder introducir la contraseña),
-También he probado, de hacer otro botón que me convierta en superusuario (sudo su), pero me encuentro con el mismo problema, que no se donde introducir la contraseña. (Aparte, otro punto de vista de esta segunda opción, es que seria superusuario desde ese momento, o solo en ese instante "es decir, a partir de ay, ya todo se ejecutaría como superusuario, o no funcionaria para siempre, y tendría que ejecutar el comando sudo, en cada operación que lo requiriera?").
-Si saben como ayudarme, les estaría agradecido por un poco de información sobre el tema, y como poder solucionar mi problema.

febrero 5, 2014 | Registered Commenterpepitogrillo

Lo que tienes que hacer es lanzar tu programa Java como root.
Todos los comandos que luego lance ese programa se ejecutaran como root.

Un saludo

febrero 5, 2014 | Unregistered CommenterUnoPorAhi

Gracias, lo he probado ejecutándolo desde terminal siendo root i si funciona.
Pero, habría otra forma de hacerlo? Es decir, se podría ejecutar sin ser root y desde el mismo, hacerse root?

febrero 7, 2014 | Registered Commenterpepitogrillo