Search code examples
javapasswordscmdsudo

Execute a linux shell command with "sudo" using java, without entering the required password


Hi I'm using ganymed-ssh2 java library to execute remote commands in linux workstation with success.

But now there is a situation where I need to execute a command but this require that i put some password...like:

sudo /usr/bin/some_process
please enter your password:  

I used to implement remote cmd execution in this way:

Session sess = conn.openSession();

sess.execCommand("uname -a && date && uptime && who");

System.out.println("Here is some information about the remote host:");

InputStream stdout = new StreamGobbler(sess.getStdout());

BufferedReader br = new BufferedReader(new InputStreamReader(stdout));

while (true)
{
  String line = br.readLine();
  if (line == null)
  break;
  System.out.println(line);
}


System.out.println("ExitCode: " + sess.getExitStatus());

sess.close();

conn.close();

I'm afraid that it's not possible to execute commands that require a password with this library.

Someone could give me a solution or alternative to allow this ???

Thx!


Solution

  • assuming there is a sess.getStdin(), you should be able to pipe in a password to the sudo command.