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

发布于 2024-12-14 00:45:39 字数 514 浏览 0 评论 0原文

我需要以 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 但这样我必须手动添加所有引用的类。

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.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

怀中猫帐中妖 2024-12-21 00:45:39

简单的!

  1. 将您的 sudoers 设置为不需要 ipfw 密码:

    用户 = NOPASSWD: /usr/sbin/ipfw
    
  2. 照常使用 sudo。< /p>

Easy!

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

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文