2011-07-11 7 views
6

誰かが現在サポートされている方法について説明し、ヘルパーツールで特権を昇格する方法をお勧めしますか?現在サポートされている特権を昇給する方法

私の理解から、次のような方法はAppleがそれを行うための方法をサポートしていません。私は実行することができるようにする方法を探しています

    • のsetuid AuthorizationExecuteWithPrivileges()

    を/ usr/sbin/softwareupdateを実行し、/ Library/LaunchDaemonsにlaunchdを置きます。

    どのようなドキュメントやサンプルコードも参考になります。

    答えて

    0

    セキュリティ上の理由から、AppleはsetuidバイナリとAuthorizationExecuteWithPrivilegesを避けることをお勧めします。推奨されるアプローチは、launchdによって(必要に応じて)特権ヘルパーツールを実行し、Unixドメインソケットを介してIPCによってアプリケーションからそのヘルパーと通信することです。特権ヘルパーは、必要な権限を持つlaunchdによって実行されます。

    BetterAuthorizationSample sample codeはこれを行う例を示しています。

    +0

    いいえ、SMJobBlessサンプルコードでは、これを行う例が提供されています。BetterAuthorizationSampleは、他の(古い)メソッドを使用して特権をエスカレートします。 SMJobBlessコードははるかに明確なIMHOであり、行く方法です。 – livingtech

    1

    公式にサポートされている10.6の新しいメソッドは、SMJobBless()と呼ばれています。しかし、そこにはほとんどドキュメントがありません。大まかなGoogle検索では、いくつかのブログ記事が表示されていました。

    関連する問題