【问题标题】:Start/Assign macOS app with root privileges使用 root 权限启动/分配 macOS 应用程序
【发布时间】:2017-12-27 16:37:42
【问题描述】:

我使用 XCode 9.2 编写了一个 macOS Cocoa 应用程序。

应用程序的目的是作为一组 shell 命令的包装器,以便用户可以根据需要轻松运行命令。 shell 脚本允许用户控制由另一方编写的软件的特定设备驱动程序。

我已经设法让应用程序以 root 身份调用 shell 命令。

但是有一些子命令会失败。实际运行的命令是,我认为失败的是第二个“stop -a”:

do shell script \"
cd '/Library/Application Support/ABC' ;
 python '/Library/Application Support/ABC/abc.py' stop -d;
 python  '/Library/Application Support/ABC/abc.py' stop -a;
 python '/Library/Application Support/ABC/abc.py' stop -g;
 python '/Library/Application Support/ABC/abc.py' stop -t;\"
 with administrator privileges

当我在终端中运行相同的命令时,它们可以作为离散命令或在 shell 脚本中工作。

作为最后的手段,我使用

从命令行运行应用程序
sudo ~/Library/Developer/Xcode/DerivedData/appname/Build/Products/Debug/appname.app/Contents/MacOS/appname

而且效果很好。

所以,当我使用正确提示我输入 root 密码的 NSAppleScript 框架运行时,似乎仍然存在导致命令失败的问题。但是当整个应用程序在sudo 下运行时,一切正常。

因此,解决方案似乎是将应用程序设置为需要 Root 权限。是否可以为已构建的项目设置一个设置,该设置会自动设置为在启动时请求 root 密码?

【问题讨论】:

    标签: xcode root sudo nsapplescript


    【解决方案1】:

    似乎正在工作,我没有收到错误,但仍然希望获得一些关于如何将应用程序设置为以管理员身份运行的指示。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-29
      • 1970-01-01
      • 1970-01-01
      • 2017-05-04
      • 1970-01-01
      • 2011-05-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多