我用jpcap实现了一个小型的java嗅探器工具。到目前为止,它运行良好,但它需要root权限才能访问网络设备。如果我将我的项目导出到一个可运行的jar中,我可以通过在终端中使用sudo
来运行它:
$ sudo java -jar littleSniffer.jar
有人知道用root权限运行我的可运行jar的"一键"解决方案吗。我想把这个工具给我的同事,如果他们不用终端就能启动它,那就太好了。也许通过使用自动售货机应用程序?
试试这样的东西:
如果你对终端很满意,只需创建一个新文件并放入类似的内容:
#!/bin/sh
sudo java -jar littleSniffer.jar
并将该文件保存为blah.command(.命令扩展名在双击时在terminal中运行sh文件)。
如果你想要更好的东西,你可以使用这样的osascript命令:
#!/bin/sh
osascript -e "do shell script "java -jar littleSniffer.jar" with administrator privileges"
它将使用GUI请求根密码。
注意:如果你的.命令文件没有运行,你可能需要:
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嵌入脚本中。