ユーザーがアイコンをダブルクリックして起動する、通常の古い MacOS/X GUI プロセスがあるため、そのユーザーの権限で実行されています。
私がやりたいのは、この GUI プロセスに子プロセスを生成させ、stdin/stdout を介して子プロセスと通信させることです。それはすべて実行可能で機能しています。
秘訣は、子プロセスがルート アクセスを必要とするいくつかのことを実行する必要があるため、子プロセスをルートとして実行することです。
これには、ユーザーに管理者パスワードの入力を求めるダイアログを開く必要があると思いますが、このユースケースでは問題ありません。
これを行う 1 つの方法は、親プロセスに次のようなシェル コマンドを実行させることです。
/usr/bin/osascript -e 'do shell script "/bin/bash ./my_script.sh" with administrator privileges'
...そしてmy_script.sh
子プロセスを表すプログラムを実行しましたが、これはうまくいくと思いますが、これを達成するためのよりエレガントな方法はありますか(つまり、シェルスクリプトをどこかのディスクに書き出す必要がなく、より「osascriptが変更を望んでいる」と不思議なことに言うものよりも、ユーザーフレンドリーなパスワード要求者)?