我需要使用root权限在Java中运行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 ,但这样我必须手动添加所有引用的类。
答案 0 :(得分:5)
容易!
将sudoers
设置为ipfw
不需要密码:
user = NOPASSWD: /usr/sbin/ipfw
照常使用sudo
。