【问题标题】:How to running application under root privilege?如何在root权限下运行应用程序?
【发布时间】:2013-07-18 03:00:45
【问题描述】:

请告诉我为我的应用程序授予修改 /Library/Fonts 文件夹作为添加新字体和删除字体文件的方法。 提前致谢。

【问题讨论】:

    标签: macos authorization root privileges


    【解决方案1】:
    • 您可以将您的应用程序分成两部分:服务(守护程序)和 UI,并通过安装程序安装它们,这样您的服务将具有 root 权限
    • 您可以使用AuthorizationExecuteWithPrivileges() 从您的应用程序运行一些命令,但它已被弃用。仍然有效
    • 您可以通过NSAppleScript 使用“do shell script \"some script\" with administrator permissions”运行一些命令。但它更像是一个 hack,apple documentationNSAppleScript 类只能在应用程序的主线程中使用。但它也有效,我个人对此没有任何问题。
    • 您可以创建辅助工具并使用ServiceManagement.frameworkSMJobBless()

    您可以找到一些其他信息 herehere

    【讨论】:

    • 赞成使用帮助应用程序拆分应用程序。苹果在这里有示例代码:developer.apple.com/library/mac/#samplecode/SMJobBless/…
    • 但我在 XCode 3.2 和 Mac OS 10.6 上构建 SMJobBless 项目时出现错误`未定义符号:“_CFBridgingRelease”,引用自:-[SMJobBlessAppController blessHelperWithLabel:error:] in SMJobBlessAppController.o ld: symbol(s ) 未找到 collect2: ld 返回 1 退出状态 `
    • 如何使用 AuthorizationExecuteWithPrivileges() 授权写入 /Library/Fonts 文件夹
    • 您将脚本传递给AuthorizationExecuteWithPrivileges。它可能是启动一些帮助脚本/工具,或者只是调用rmcp 实用程序
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-24
    • 2021-03-24
    • 2012-04-29
    • 1970-01-01
    • 2013-04-04
    • 1970-01-01
    • 2010-09-09
    相关资源
    最近更新 更多