所有已知的 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,然后启动它……默认会在自己的子文件夹中查找本地副本。