我用jpcap实现了一个小型 java 嗅探器工具。到目前为止,它运行良好,但它需要 root 权限才能访问网络设备。如果我将我的项目导出到一个可运行的 jar,我可以sudo
在终端中使用它来运行它:
$ sudo java -jar littleSniffer.jar
有谁知道“一键式”解决方案以root权限运行我的可运行jar。我想将该工具提供给我的同事,如果他们可以在不使用终端的情况下启动它,那就太好了。也许通过使用自动化应用程序?
尝试这样的事情:
如果您对终端感到满意,只需创建一个新文件并输入如下内容:
#!/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
使其可运行。
尝试使用 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 嵌入脚本中。