gpt4 book ai didi

bash - 为什么直接运行bash脚本不需要用户权限,但是运行脚本的.app文件需要用户权限?

转载 作者:行者123 更新时间:2023-11-29 09:11:40 24 4
gpt4 key购买 nike

我有一个 bash 脚本 myscript,它加载了一些 applescript 以向用户提示图形界面,询问他的密码。

  • 如果我在 .app 包之外直接运行 bash 文件,它可以在没有系统提示的情况下执行 do you want to allow this program to access...[stuff]?

  • 但是如果我将相同的 bash 文件放入 .app 包中(与脚本同名),然后双击 .app 文件,那么它会首先显示系统提示要求用户授权.我没有向该应用程序添加任何特殊权利。

是否有一个链接可以解释 .app 安全性在执行脚本时与在命令行中有何不同?

最佳答案

在这两种情况下,脚本都是由应用程序启动的。在一种情况下,该应用程序是终端,并且它具有所需的权限。您的应用此时没有。

这是 10.14 中的更改,在 release notes 中进行了描述:

Sending Apple events from an app—including script applets—now requires user approval. The list of currently approved apps can be viewed and edited in the Automation category in the Privacy tab in System Preferences > Security & Privacy. If an event is blocked because the user didn’t approve that app, the event will fail with the error code: -1743 (": Not authorized to send Apple events to "). An event can be preflighted using AEDeterminePermissionToAutomateTarget(::::).

Mojave 对 Apple Events(AppleScript 的核心)引入了非常严格的控制,这使得自动化非常复杂。 Michael Tsai has aggregated a lot of helpful discussion of the issues.

另请参阅:com.apple.iTunes AEDeterminePermissionToAutomateTarget is always return -600

关于bash - 为什么直接运行bash脚本不需要用户权限,但是运行脚本的.app文件需要用户权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53804228/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com