特定のタスクを実行するために昇格された特権を必要とする Mac 上のアプリケーションがあります。これを達成するために、私は App バンドル内にバイナリ実行可能ファイルを運び、昇格が必要なときはいつでも、この実行可能ファイルを launchd を使用して送信しSMJobSubmit()
ます。この実行可能ファイルに加えて、特定の引数を含む plist ファイルを実行可能ファイルに送信して、実行する必要があることを伝えます。
私の懸念は、実行可能ファイルが実行しようとしているものであることを確認するにはどうすればよいかということです。誰かが実行可能ファイルを悪意のあるものに置き換え、ルート権限が付与された場合に大混乱を引き起こす可能性がある場合はどうなりますか? launchd または SMJobSubmit は免責を提供しますか? それとも、最後に署名とチェックサムを検証する必要がありますか? 不思議なことに、この問題に関する議論をオンラインで 1 つも見つけることができませんでした。
このブログでは、SMJobSubmit の使用例を紹介しています。私は同じ行に実装しました。