OSX Catalina破坏了使用管理员权限启动osascript的功能

4

所有已知的 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 中,我可以使用 sudo 启动我的应用程序,这很好,但我不能指望普通用户能够在 shell 中执行 sudo。
正如我所说,这曾经是一个不错的方法,在过去的 6 到 8 年里一直有效......但现在失败了。有人有什么诀窍或方法来解决它吗?
曾经......我不知道为什么,我看到了 OSX 安全弹出窗口指示“java”不是可信任的应用程序,而且我的设置只允许应用商店应用程序。但那只发生过一次......而且很奇怪。我点击了确定,它就消失了。我想也许 java 已经被隔离了,所以我执行了清除该标志的命令:
xattr -rd com.apple.quarantine /path/to/the/binary/java

但这并没有什么区别。我确定这是Catalina中的新安全功能,使事情变得困难……但我无法弄清楚为什么或如何解决它们。这是一个Java应用程序,通过app.command文件启动,该文件在计算机上找到Java,然后启动它……默认会在自己的子文件夹中查找本地副本。

1个回答

1

接受此答案。简而言之,如果您不使用XCode并开发本地OSX应用程序,即使提示用户执行这些特权活动,您也不能再执行各种特权活动。升级的结果将被简单忽略。我的应用程序是一个Java应用程序,并且在应用程序中具有Java二进制文件,但是通过script.command文件启动,因此不符合Apple的要求。对我来说,XCode没有用处。 - Ben

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接