OSX Catalina凭借管理员权限打破了osascript的发布

时间:2019-10-10 08:32:59

标签: java launch administrator macos-catalina

所有已知的先前macOS版本均使用这种脚本上下文:

osascript -e "/path/to/my/app.command" with administrator privileges

现在,它只是悄悄地失败了……在询问管理员密码之后。 命令文件是最初用于启动应用程序的文件,并且该应用程序具有一个按钮,该按钮可以重新启动并具有特权...并且先前的非特权应用程序将关闭。

如果我删除“具有管理员权限”,它将重新启动。如果在那里,就不会。

如果我尝试使用:

/usr/bin/security execute-with-privileges /path/to/my/app.command

它也失败了……甚至没有显示密码提示。

我也尝试了“ sudo open /Applications/myApp.app”,但实际上并没有使用特权启动。

我可以从shell中启动我的应用程序,这很好,但是我不能指望普通用户能够在shell中执行sudo。

正如我所说,这是一个不错的方法,可能在过去6到8年中奏效了……但现在失败了。任何人都有技巧或方法来解决它吗?

一次。...我不知道为什么,我看到OSX安全弹出窗口指示“ java”不是受信任的应用程序,并且我的设置仅允许应用程序商店应用程序。但这只发生了一次……这很奇怪。我单击确定,它消失了。我以为可能Java已被隔离,所以我执行了清除该标志的命令:

xattr -rd com.apple.quarantine /path/to/the/binary/java

但这没什么区别。我确信这是Catalina中的新安全功能,这使事情变得困难起来……但是我不知道为什么或如何进行操作。它是一个通过app.command文件启动的Java应用程序,该文件在计算机上找到Java,然后将其启动...默认情况下是在其自己的子文件夹中找到本地副本。

1 个答案:

答案 0 :(得分:0)

签出项目的沙箱设置。 App Sandbox应该在权利文件中设置为false。 沙箱功能可防止您的应用提升您的应用特权。 参考:https://developer.apple.com/app-sandboxing/