如何在 Java 中以 root 权限运行 shell 命令 [英] How to run shell commands with root privileges in Java
问题描述
我需要以 root 权限在 Java 中运行 shell 命令(在我的例子中是 ipfw
).我使用 ProcessBuilder
来运行没有权限的命令:
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);
}
此代码工作正常,但我需要运行类似 sudo
root 命令 之类的东西.我该怎么办?
This code work fine but I need to run something like sudo
root command. How can I do?
我需要在 Eclipse、Mac OS X 10.6.8 中运行这个程序
I need to run this program in Eclipse, Mac OS X 10.6.8
现在我从终端使用 sudo java
nameclass 但这样我必须手动添加所有引用的类.
for now I use sudo java
nameclass from terminal but in this way I have to manually add all the referenced classes.
推荐答案
简单!
设置您的
sudoers
以便ipfw
不需要密码:
Set up your
sudoers
to not require a password foripfw
:
user = NOPASSWD: /usr/sbin/ipfw
照常使用 sudo
.
这篇关于如何在 Java 中以 root 权限运行 shell 命令的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!