7

私は/ Library内のフォルダに定期的にファイルをインストールする必要があるものに取り組んでいます。昇格ヘルパー&SMJobBlessでルートアクセスを取得

私は過去にAuthenticateメソッドの1つを使用していた可能性があることを理解していますが、その後は10.7で廃止されました。私はこれまでの私の読書から理解しました

:私は何とか認証され、ヘルパーを作成し、そのヘルパーを持っている必要があり

は移動のすべてのタスクを実行します。私はいくつかのサンプルコードを見てきました。たとえば、XPCとElevatorというものがありますが、ちょっと混乱します。

クライアント/サーバーモデルの設定には多くの問題がありますが、実際にファイルを正しいディレクトリにインストールする方法はわかりません。ほとんどの例は文字列を渡すだけです。

質問:私は/ Libraryにフォルダをプログラムで作成し、定期的にファイルを書き込むことができます。私は本当にこれにアプローチする方法がよくわからず、多くの文書がないようです。

答えて

4

これについては、あまりドキュメントがないことは間違いありません。あなたは基本的に別のアプリ、ヘルパーアプリを書くでしょう。これはSMJobBless()でインストールされます。驚くことではありませんが、 ここでの扱いにくい部分はコード署名です。私にとって最も明白な部分は、SMAuthorizedClientsSMPrivilegedExecutables各アプリケーションのinfo plistファイルのエントリは、アプリケーションの署名に使用したID /証明書に依存しています。また、ヘルパーツールにコンパイルされた情報plistファイルをコンパイルするためのコンパイラ/リンカのトリックもあります。これは、バンドルではなく単一の実行可能ファイルになります。

ヘルパーアプリケーションを起動して実行すると、2つの異なるプロセスなので、通信する方法を工夫する必要があります。おそらく最も簡単な方法はXPCです。 XPCは通常サーバープロセスで使用されますが、ここで使用しているのはXPCの通信側だけです。基本的には、2つのアプリの間で辞書を前後に渡します。辞書の標準形式を作成します。 @ "filemove"、@ "filecopy"、および@ "makedirectory"の3つのアクション値を持つ@ "action"、 "@" sourceおよび@ "destination"を使用しました。それらは私のヘルパーアプリができる3つのもので、必要に応じて簡単に追加できます。

ヘルパーアプリケーションは基本的にXPC接続とイベントハンドラの設定を行い、接続とコマンドを待ちます。コマンドは辞書にすぎませんので、適切なキー/値をチェックして何でも実行できます。

さらなるヘルプが必要な場合は、詳細とコードを提供することができますが、この質問は9ヶ月ですので、あなたがすでに把握した詳細をあなたに与える時間を無駄にしたくありません。

関連する問題