如何在 Java 中以 root 权限运行 shell 命令 [英] How to run shell commands with root privileges in Java

查看:208
本文介绍了如何在 Java 中以 root 权限运行 shell 命令的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要以 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.

推荐答案

简单!

  1. 设置您的 sudoers 以便 ipfw 不需要密码:

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

user = NOPASSWD: /usr/sbin/ipfw

  • 照常使用 sudo.

    这篇关于如何在 Java 中以 root 权限运行 shell 命令的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

  • 查看全文
    登录 关闭
    扫码关注1秒登录
    发送“验证码”获取 | 15天全站免登陆