如何以root身份运行macOS应用程序并使用系统调用?

时间:2018-03-31 16:29:52

标签: xcode macos xcode9.2

我正在尝试从我的macOS应用程序(objective-c)运行setpriority命令。它永远不会起作用,我认为这是因为应用程序没有以root用户身份运行。

  • 我已登录计算机上的管理员帐户
  • 我尝试使用sudo
  • 打开应用
  • 我尝试在应用
  • 上使用chmod
  • 我尝试将应用添加到Accessibility
  • 下的Security and Privacy列表中

Xcode版本9.2(9C40b)

感谢任何帮助,谢谢!

2 个答案:

答案 0 :(得分:1)

您希望以root运行,还是希望与sudo一起运行?有区别。绝对不建议以root身份运行,您将从系统中获得奇怪的行为。

您写道:

  

我尝试用sudo打开应用

那应该有用。你怎么试过的?您需要在.app包中调用二进制文件。对捆绑包运行open将无效。

e.g。

sudo ./Xcode.app/Contents/MacOS/Xcode

答案 1 :(得分:0)

不建议以root身份在macOS上运行GUI应用程序。相反,您应该将需要root访问权限的应用程序部分分解为单独的帮助工具,使用SMJobBless()函数以root身份启动该工具,然后使用XPC与该工具进行通信。

Apple提供了EvenBetterAuthorizationSample示例代码,以提供一个非常好的基本框架。