0
我正在嘗試爲OS X創建安裝程序。爲了能夠寫入由根(/ Applications,/ Library ...)所擁有的目錄,我正在使用安全框架中的授權服務。以下代碼對管理員用戶正常工作但對標準用戶失敗。權限的創建沒有錯誤消息,但該進程仍然以較低的權限運行(沒有文件寫入提到的位置)。OS X,從標準用戶啓動時,應用程序無法獲得root previliges
當然,我使用admin用戶的登錄名/密碼進行驗證。
AuthorizationRef authRef;
char rightName[] = "system.install.root.user";
AuthorizationItem kActionRight = { rightName, 0, 0, 0 };
AuthorizationRights rights = {1, &kActionRight};
AuthorizationFlags flags=kAuthorizationFlagExtendRights|kAuthorizationFlagInteractionAllowed;
OSStatus err = AuthorizationCreate(&rights, 0, flags, &authRef);
// [ write to a file in /Applications; doesn't work with standard users ]
if (authRef != 0)
AuthorizationFree(authRef, kAuthorizationFlagDestroyRights);
我知道有使用AuthorizationExecuteWithPrivileges()的例子,但因爲這是OS X 10.7不贊成我寧願避免使用它。任何想法我做錯了什麼,或者我需要做什麼來獲得root權限?
感謝您的幫助,
克里斯
這是一個web安裝程序,因此PackageMaker不是真正的選項。我會看看HelperTools。 – user1365581
什麼是webinstaller? – toohtik