9

我用jpcap实现了一个小型 java 嗅探器工具。到目前为止,它运行良好,但它需要 root 权限才能访问网络设备。如果我将我的项目导出到一个可运行的 jar,我可以sudo在终端中使用它来运行它:

$ sudo java -jar littleSniffer.jar 

有谁知道“一键式”解决方案以root权限运行我的可运行jar。我想将该工具提供给我的同事,如果他们可以在不使用终端的情况下启动它,那就太好了。也许通过使用自动化应用程序?

4

2 回答 2

9

尝试这样的事情:

如果您对终端感到满意,只需创建一个新文件并输入如下内容:

#!/bin/sh
sudo java -jar littleSniffer.jar

并将文件保存为 blah.command(.command 扩展名在终端中双击运行 sh 文件)。

如果你想要更好的东西,你可以像这样使用 osascript 命令:

#!/bin/sh
osascript -e "do shell script \"java -jar littleSniffer.jar\" with administrator privileges"

它将使用 GUI 请求获取 root 密码。

注意:如果您的 .command 文件没有运行,您可能需要:

chmod +x blah.command

使其可运行。

于 2015-01-15T12:52:54.310 回答
0

尝试使用 uuencode/uudecode 将 JAR 嵌入到 shell 脚本中。创建一个名为 littleSniffer.command 的 shell 脚本,其中包含以下行:

#!/bin/bash
rm -f littleSniffer.jar
uudecode $0
sudo java -jar littleSniffer.jar
rm -f littleSniffer.jar
exit

然后,运行uuencode -m littleSniffer.jar littleSniffer.jar >> littleSniffer.command以将 JAR 嵌入脚本中。

于 2015-01-16T14:47:37.513 回答