问题标签 [smjobbless]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
408 浏览

macos - SMJobBless 仅适用于 kSMDomainSystemLaunchd,需要 kSMDomainUserLaunchd

文档指出,使用SMJobBless您只能使用kSMDomainSystemLaunchd

但是如何在用户库中的 LaunchAgents/ 中创建一个 LaunchAgent,使用 SMJobBless 或类似方法在用户登录时执行?

0 投票
1 回答
660 浏览

macos - SMJobBless 适用于 Privileged Helper 工具,但如果我想启动 plist 以复制到 /Users/ 怎么办?/图书馆/LaunchAgents

SMJobBless 适用于 Privileged Helper 工具,但如果我想启动 plist 以复制到/Users/<user>/Library/LaunchAgents. 我不想输入任何用户密码来安装帮助工具。

0 投票
0 回答
576 浏览

objective-c - 如何使用特权助手工具(使用 SMJobless 安装)在 osx 上以 root 权限启动其他应用程序

我有一个应用程序,其中我保留了其他应用程序。我想通过主应用程序以 root 权限启动其他应用程序。众所周知AuthorizationExecuteWithPrivileges(),已被弃用,因此我创建了一个特权帮助工具。我正在使用主应用程序通过SMJobBless()功能安装这个帮助工具,并通过XPC机制进行通信。一切正常,主应用程序将消息(要启动的应用程序的路径)发送到已经在根模式下运行的辅助工具。辅助工具能够启动路径中提供的应用程序,但问题是,启动的应用程序没有 root 权限。谁能告诉我如何使用这个帮助工具以 root 权限启动另一个应用程序.或者是否有任何其他机制可以实现它,我将对此表示感谢。

0 投票
1 回答
142 浏览

macos - How to access a packaged CLI tool using Swift on OSX

I need to accomplish following three things. I am not sure how to go about it using Swift and Xcode

  1. Package an existing CLI tool with the APP.

  2. Use swift to issue commands to this CLI app and let it do its thing.

  3. Read the output stream coming from the CLI app in real-time if possible.

I have found NSTask that should be utilized, but I get App Previlege Issues and errors. SMJobBless sounds helpful but I am having hard time to understand all this. All I was trying to do was issuing some commands to a cli app that is already embedded within my app package.

0 投票
2 回答
526 浏览

macos - Lazarus Pascal:使用 SMJobBless() 编写特权帮助工具

我过去在 Lazarus Pascal 中创建了一个应用程序,它执行“dd”以将图像写入驱动器。为此,显然需要提升权限。

在我使用的初始版本AuthorizationExecuteWithPrivileges()链接)中,尽管并非完全用于此目的,但它确实运行良好且非常一致。但是,此功能自 OSX 10.7 以来已被贬值,因为它可能是一个安全问题,并且重定向的命令行语句也无法正常工作(重定向输出zip作为 的输入dd)。

在下一个版本中,我使用了 Lazarus Pascal Wiki(执行外部程序)中描述的方法,它基本上启动了一个与我的程序通信的 TProcess。使用sudo -S dd ...,会询问并输入用户密码以确保他/她具有适当的访问权限。显然,这是一种肮脏的黑客方法,它表明某些用户会遇到问题。

经过大量阅读后,Apple 似乎更喜欢使用名为SMJobBless()的辅助工具来完成此操作。不幸的是,当谈到 Objective-C 时,我不是很有经验,所提供的代码似乎充其量只是很少,也没有很好的文档记录。

我想知道是否有人有经验或可以协助将这种方法“移植”到Lazarus Pascal ......我都赞成做对。当然,替代方法也是最受欢迎的!

任何帮助将不胜感激。

0 投票
1 回答
91 浏览

objective-c - 跨工作区使用通用权限帮助工具 - SMJobBless

我有一个工作区,其中有 2 个项目,一个是安装程序应用程序,另一个是卸载程序应用程序。这两个应用程序都需要权限帮助工具来执行某些操作。我正在尝试在我的工作区中编写一个通用工具作为第三个项目,该项目将与现有项目链接。

现在,问题是我如何在现有项目的目标依赖项中添加该通用工具并从其他项目启动(特权工具)它。

0 投票
1 回答
408 浏览

objective-c - 仅要求标准帐户的管理员权限

我正在通过我的应用程序将一些文件移动到 /Applications 目录,并使用 SMJobBless() 提升到管理员权限。

但是它会提示任何类型的帐户-admin 或standard_user 的管理员凭据,我们是否可以使用任何objective-c API 只为标准用户进行检查并要求管理员凭据?

编辑——如果有人尝试或完成了安装 Dropbox 的过程,那么 Dropbox 安装程序也会这样做(即,它只要求标准帐户的管理员权限,以便将其 .app 文件复制到 /Applications)。

0 投票
4 回答
2478 浏览

macos - SMJobBless 给出错误 CFErrorDomainLaunchd Code=8

我正在尝试通过 SMJobBless 安装帮助工具,但出现以下错误,

错误域 = CFErrorDomainLaunchd 代码 = 8 “操作无法完成。(CFErrorDomainLaunchd 错误 8。)

我验证了代码符号、应用程序的 plist 和帮助工具,在 launchServices 中复制了该工具并链接了 plist。

谁能帮帮我吗?

谢谢,

0 投票
2 回答
3450 浏览

macos - SMJobBless 因 CFErrorDomainLaunchd 代码 9 而失败

有人知道那个错误代码是什么意思吗?我收到此返回代码值的 SMJobBless 错误。

我用谷歌搜索,在博客文章、Apple Docs、here 中查找答案,但找不到答案这是什么以及如何解决它。人们说(在一些支持论坛上重新安装 OS X 对他们有帮助)。

几周前我正在进行的项目已经发生了这种情况,唯一帮助我解决它的事情是更改我的帮助工具的名称。现在又发生了。

同时我的代码在其他计算机上运行,​​只有我的工作站受此问题影响。

更新: 重命名后,它再次工作。现在我的系统上有两个帮助工具包标识符“禁止”:-(

更新 2: 它也发生在其他计算机上:-(

0 投票
1 回答
388 浏览

macos - Apple 的 SMJobBless() 在沙箱下不起作用

Apple 的SMJobBless应该是编写在沙箱中运行并需要特权的程序的新的、正确的方法。但是,当我下载代码并打开沙盒时,它不起作用。相反,我收到此错误:

我需要从沙盒中运行的应用程序在 /etc 中写入一个文件。这可能吗?