2012-01-19 4 views
7

私はいくつかの掘り下げをしてきましたが、私が浮遊して見た主なアイデアはsetuid/getuidを使用していて、認可サービスを使用しています(コンパイル時に何かの理由で現在は推奨されていません)。プログラム特権をエスカレートするOS X

私のアプリケーションでは、特定の時点で、好ましくはOS X認証ダイアログを使用して(RAWディスクドライブにアクセスするための)ルートアクセスを要求する必要があります(OS Xを初めて使用しているため、それ)。

答えて

2

AFAIKの認可サービスは、かなりサポートされています。

Here's a link to a tutorial (with sample projects!)管理者権限を取得できる小さなツールを起動し、呼び出しプロセスでsetpriority APIを呼び出すことができます(ドキュメントはあなたのためにリンクされています)。

+0

ありがとうございます!何らかの理由で、私が#include のようにAuthorizationExecuteWithPrivilegesが宣言されている場所を見つけることができません。その1つの関数以外はほとんどすべてのシンボルがあります。 – Lander

+0

http://developer.apple.com/library/ mac /#documentation/Security/Reference/authorization_ref/Reference/reference.htmlによれば、AuthorizationExecuteWithPrivilegesは10.7以降で廃止されました。 http://stackoverflow.com/questions/6841937/authorizationexecutewithprivileges-is-deprecatedにはいくつかの関連情報があります。 – Vishal

+0

Whooops ...「AuthorizationExecuteWithPrivileges」は10.7時点で「非推奨」になりました。私はAppleの[Authorization Services Tasks](http://developer.apple.com/library/mac/#documentation/Security/Conceptual/authorization_concepts/03authtasks/authtasks.html#//apple_ref/doc/uid/TP30000995)を見ています。 -CH206-TP9)のドキュメントを参照して、['renice'](http://developer.apple.com/library/mac/#documentation/Darwin/Reference/ManPages/man8/renice.8.html)の呼び出し方法をご覧くださいプロセス。 –

関連する問題