How to run shell commands with root privileges in

2019-07-24 09:11发布

问题:

I need to run shell commands (in my case ipfw) in Java with root privileges. I use ProcessBuilder to run commands with no privileges:

Process p = new ProcessBuilder("ls","/").start();

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

String s;
while((s=br.readLine()) != null) {
    System.out.println(s);
}

This code work fine but I need to run something like sudo root command. How can I do?

I need to run this program in Eclipse, Mac OS X 10.6.8

Edit: for now I use sudo java nameclass from terminal but in this way I have to manually add all the referenced classes.

回答1:

Easy!

  1. Set up your sudoers to not require a password for ipfw:

    user = NOPASSWD: /usr/sbin/ipfw
    
  2. Use sudo as usual.



标签: java shell root