如何在Java中以root权限运行shell命令

3

我需要在Java中以root权限运行shell命令(在我的情况下是ipfw)。我使用ProcessBuilder来以无特权的方式运行命令:

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);
}

这段代码可以正常运行,但我需要运行类似于sudo root命令。我该怎么做?

我需要在 Eclipse 和 Mac OS X 10.6.8 中运行此程序。

编辑:目前我使用终端中的sudo java nameclass,但这样我必须手动添加所有引用的类。

1个回答

6

很容易!

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

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


sudo visudo。尽情编辑。 - C. K. Young
我必须在 # 用户权限规范 下面添加这行吗? - Baduel
是的,你应该在那里添加它。 - C. K. Young
我已经放置了那一行,但是它仍然用错误响应了我。我也将user替换为“_myusername_”,但错误还是一样的。 - Baduel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接