2

Privileged Helper ツールと、それらを展開するための目的と手法についてよく知っています。また、それらを正常に作成してインストールしましたが、特別な権限が必要な場所にファイルを単純にコピーする方法を示す例は 1 つも見つかりません。FSPathCopyObjectSync を使用すると、これを実現できると思いましたが、Mac OSX でのすべてのファイル操作のように見える方法とともに、このメソッドは非推奨であることがわかりました。

これまでに見つけたものは次のとおりです。

BetterAuthorizationSample (非推奨)

SMJobBless (基本的に何もしません)

特権ヘルパーの例(以下のコマンド ライン ツールはインストールしません)

これは、上記の例のメソッドです。

if (pFilename)
{
    // Base command minus cert name and file namem is 76 characters, 1 for NULL
    char* valCodeSignCmd = 0;
    // asprintf allocates & never overflows
    if (asprintf(&valCodeSignCmd, "codesign -v -R=\"certificate leaf[subject.CN] = \\\"%s\\\" and anchor apple generic\" \"%s\"", kSigningCertCommonName, pFilename) != -1)
    {
        if (system(valCodeSignCmd) == 0)
        {
            // Passed codesign validation
            // OK to copy now - overwrite if present
            OSStatus fsret = FSPathCopyObjectSync(pFilename, "/usr/local/bin", toolName, NULL, kFSFileOperationOverwrite);
            if (fsret != noErr)
                success = false;
        }

        // Clean up
        free(valCodeSignCmd);

    }
    else
        success = false;
}

スティーブ・ジョブズの名の下に、ここで何が起こっているのでしょうか?

4

0 に答える 0