2012-05-24 140 views
0

可能重複:
Execute a linux shell command with 「sudo」 using java, without entering the required password如何從java程序運行沒有密碼的sudo命令?

我想通過java程序在Linux上執行sudo命令,但它索要密碼。 但我想運行沒有密碼編,請告訴我。 我的編是

public class JavaCommandProg { 
    public static void main(String args[]) throws IOException, InterruptedException { 
     String command="sudo cat /etc/sudoers"; 
     Process myProcess =null; 
     try { 
      Runtime runtime=Runtime.getRuntime(); 
      File file=new File("/home/users/admin/temp"); 
      myProcess = runtime.exec(command,null,file); 
      myProcess.waitFor(); 
      InputStreamReader myIStreamReader = new InputStreamReader(myProcess.getInputStream()); 
      BufferedReader br=new BufferedReader(myIStreamReader); 
      String line; 
      while((line=br.readLine())!=null){ 
       System.out.println(line); 
      } 
     } catch (IOException anIOException) { 
      System.out.println(anIOException); 
     } 
    } 
} 

Compling like: javac JavaCommandProg.java 
and   : java JavaCommandProg 
+6

http://stackoverflow.com/questions/5168755/execute-a-linux-shell-command-with-sudo-using-java-without-entering-the-requi – 0xAX

回答

0

如果你能得到它的運行,這將意味着一個安全漏洞。

說了這麼...

  1. 授予用戶權限(成爲sudoer)
  2. 調用Java程序使用sudo

    $ sudo的java的JavaCommandProg

這將提示您在運行jvm時引入sudo密碼,然後從Java程序內部調用sudo。

+0

謝謝,現在我的程序正在運行 –

+1

I'很高興你覺得它很有用!但是,注意你在java程序中做了什麼,因爲你是sudoer(對於好的和壞的)。 – OnaBai