4
有沒有一種簡單的方法可以在Mac OS X中使用原生對話框爲整個應用程序請求根權限?我正在做數據包捕獲,需要根訪問網絡設備。我使用的是C++,而不是客觀的C語言。我需要Xcode中的'debug as root'的等效功能。使用原生Mac OS X對話框請求pcap的權利
謝謝!
編輯:或者,也許如何將osascript納入到應用程序的根訪問的.app?
有沒有一種簡單的方法可以在Mac OS X中使用原生對話框爲整個應用程序請求根權限?我正在做數據包捕獲,需要根訪問網絡設備。我使用的是C++,而不是客觀的C語言。我需要Xcode中的'debug as root'的等效功能。使用原生Mac OS X對話框請求pcap的權利
謝謝!
編輯:或者,也許如何將osascript納入到應用程序的根訪問的.app?
在Unix中,進程無法提升自己的權限。無論如何,使用root權限運行整個應用程序是一個非常糟糕的主意,因爲它的攻擊面很大。您應該使用特權幫助程序來完成必要的最低限度,然後退出。
查看Apple的Secure Coding Guide,特別是關於Elevating Privileges Safely的文章。
您可以使用SMJobBless來安裝您的特權輔助工具。
這些都是Objective C方法,不是嗎? – mrkva 2013-03-23 14:22:36
在SMJobBless示例代碼中有一些Objective-C代碼,但它的肉是C API。 'AuthorizationCreate()'和'SMJobBless()'都是C函數。你可以將'-blessHelperWithLabel:error:'方法中的代碼移植到C函數中(並替換'NSLog()'調用),它仍然可以工作。 – 2013-03-23 15:19:11