Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective-C使用AuthorizationCreate以root用户身份运行代码_Objective C_Macos_Cocoa - Fatal编程技术网

Objective-C使用AuthorizationCreate以root用户身份运行代码

Objective-C使用AuthorizationCreate以root用户身份运行代码,objective-c,macos,cocoa,Objective C,Macos,Cocoa,我正试图在我的Cocoa应用程序中以root用户身份运行几行代码。 我试图通过使用AuthorizationCreate获取root权限并在运行代码后释放这些权限来实现这一点 问题是,我在//运行我的代码部分没有root权限,也不知道为什么 希望有人能找出原因。 谢谢 你怎么知道你没有适当的权利?你看到了吗?另外,我认为苹果有一个更好的,推荐的方法让可可应用程序执行特权任务。这是一个类似的话题。 AuthorizationRef myAuthorizationRef; OSStatus m

我正试图在我的Cocoa应用程序中以root用户身份运行几行代码。 我试图通过使用AuthorizationCreate获取root权限并在运行代码后释放这些权限来实现这一点

问题是,我在//运行我的代码部分没有root权限,也不知道为什么

希望有人能找出原因。 谢谢


你怎么知道你没有适当的权利?你看到了吗?另外,我认为苹果有一个更好的,推荐的方法让可可应用程序执行特权任务。这是一个类似的话题。
   AuthorizationRef myAuthorizationRef;
OSStatus myStatus;

myStatus = AuthorizationCreate (NULL, kAuthorizationEmptyEnvironment,
                                kAuthorizationFlagExtendRights | kAuthorizationFlagInteractionAllowed , &myAuthorizationRef);
AuthorizationItem myItems[1];

myItems[0].name = kAuthorizationRightExecute;
myItems[0].valueLength = 0;
myItems[0].value = NULL;
myItems[0].flags = 0;

AuthorizationRights myRights;
myRights.count = sizeof (myItems) / sizeof (myItems[0]);
myRights.items = myItems;

AuthorizationFlags myFlags;
myFlags = kAuthorizationFlagDefaults |
kAuthorizationFlagInteractionAllowed |
kAuthorizationFlagExtendRights;

myStatus = AuthorizationCopyRights (myAuthorizationRef, &myRights,
                                    kAuthorizationEmptyEnvironment, myFlags, NULL);

if (myStatus==errAuthorizationSuccess)
{

  //Run my Code


}

myStatus = AuthorizationFree (myAuthorizationRef, kAuthorizationFlagDestroyRights);