【问题标题】:An alternative to executing commands with AuthorizationExecuteWithPrivileges as root以 root 身份使用 AuthorizationExecuteWithPrivileges 执行命令的替代方法
【发布时间】:2012-05-22 19:51:00
【问题描述】:

在 10.7 中弃用 AuthorizationExecuteWithPrivileges 后,除了以 root 身份以编程方式运行诸如 launchctl、chmod、chown 等命令之外,还有什么替代方法?我需要支持 10.5,所以不能选择 SMJobBless。

这是用例。我在运行时为 LaunchDaemons 守护进程生成一个 plist,需要将守护进程和 plist 复制到它们的适当位置并使用 launchctl 卸载/加载 plist

我是否正确理解我需要 root 才能执行这些操作?

【问题讨论】:

  • 您需要编写代码来检测O/S版本,或者通过自省检测哪些API可用,并使用那些可用的API。如果不使用这种技术,你很少能写出一刀切的应用程序。
  • “已弃用”并不意味着“无法使用”。如果需要支持 10.5,请使用适用于 10.5 的方法
  • 已弃用并不意味着无法使用,但 Apple 倾向于弃用,然后最终完全取消所有支持,我希望尽可能少地为此编写解决方案

标签: objective-c xcode launchd


【解决方案1】:

你可以使用applescript

do shell script "sh /Users/new/load.sh" with administrator privileges

【讨论】:

    猜你喜欢
    • 2012-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-20
    • 2011-10-25
    • 2014-01-07
    • 1970-01-01
    相关资源
    最近更新 更多