ユーザー ワンクリックでmac os xのルート特権でjarを実行する




high sierra ユーザー 削除 できない (2)

私はjpcapで小さなJavaスニファツールを実装しました 。 これまでのところはうまく機能していますが、ネットワークデバイスにアクセスするにはroot特権が必要です。 私のプロジェクトを実行可能なjarにエクスポートする場合、私はそれをターミナルのsudoを使って実行できます:

$ sudo java -jar littleSniffer.jar 

root権限でrunnable jarを実行する "ワンクリック"のソリューションは誰も知っていますか? そのツールを私の仲間に渡したいのですが、ターミナルを使わずに始めることができたらうれしいです。 たぶんオートマトンアプリを使って?


Answer #1

次のようなことを試してください:

端末に満足すれば、新しいファイルを作成して次のように入力してください:

#!/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"

rootパスワードのGUI要求を使用します。

注:.commandファイルが実行されていない場合は、次の操作を行う必要があります。

chmod +x blah.command

それを実行可能にする。


Answer #2

uuencode / uudecodeを使用して、JARをシェルスクリプトに埋め込みます。 littleSniffer.commandというシェルスクリプトを作成し、次の行を追加します。

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

次に、スクリプト内にJARを埋め込むために、 uuencode -m littleSniffer.jar littleSniffer.jar >> littleSniffer.commandを実行します。