OSX Catalina凭借管理员权限中断了osascript的发布

问题描述 投票:1回答:1

所有已知的先前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”,但实际上并没有特权启动。

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

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

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

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

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

java launch administrator macos-catalina
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.