OSX Catalina 以管理员权限破坏了 osascript 启动
OSX Catalina broke osascript launch with administrator priviledges
所有已知的先前 macOS 版本都使用这种脚本上下文:
osascript -e "/path/to/my/app.command" with administrator privileges
现在它只是默默地失败了...在询问管理员密码之后。
命令文件是最初用于启动应用程序的文件,该应用程序有一个按钮可以以特权重新启动...并且之前的非特权应用程序关闭。
如果我删除 "with administrator privileges",它会重新启动。如果有,则没有。
如果我尝试使用:
/usr/bin/security execute-with-privileges /path/to/my/app.command
它也失败了...甚至从不显示密码提示。
我也试过 "sudo open /Applications/myApp.app" 但那当然没有实际启动权限。
从 shell 我可以 sudo 启动我的应用程序,这很好,但我不能指望普通用户能够在 shell.
正如我所说,这是一个很好的方法,可能在过去的 6 到 8 年里一直有效……但现在失败了。任何人有任何技巧或方法来解决它吗?
有一次....我不知道为什么,我看到 OSX 安全弹出窗口指示 "java" 不是受信任的应用程序,我的设置只允许应用程序商店应用程序。但这只发生过一次……而且很奇怪。我点击确定,它消失了。我以为 java 可能已被隔离,所以我执行了清除该标志的命令:
xattr -rd com.apple.quarantine /path/to/the/binary/java
但这没有什么区别。我确定这是 Catalina 中的新安全功能,使事情变得困难……但我无法弄清楚为什么或如何解决这些问题。它是一个 java 应用程序,通过 app.command 文件启动,该文件在机器上找到 java 然后启动它...默认在其自己的子文件夹中查找本地副本。
检查项目的沙箱设置。 App Sandbox
应在权利文件中设置为 false。
沙盒功能可防止您的应用提升应用中的权限。
参考:https://developer.apple.com/app-sandboxing/
所有已知的先前 macOS 版本都使用这种脚本上下文:
osascript -e "/path/to/my/app.command" with administrator privileges
现在它只是默默地失败了...在询问管理员密码之后。 命令文件是最初用于启动应用程序的文件,该应用程序有一个按钮可以以特权重新启动...并且之前的非特权应用程序关闭。
如果我删除 "with administrator privileges",它会重新启动。如果有,则没有。
如果我尝试使用:
/usr/bin/security execute-with-privileges /path/to/my/app.command
它也失败了...甚至从不显示密码提示。
我也试过 "sudo open /Applications/myApp.app" 但那当然没有实际启动权限。
从 shell 我可以 sudo 启动我的应用程序,这很好,但我不能指望普通用户能够在 shell.
正如我所说,这是一个很好的方法,可能在过去的 6 到 8 年里一直有效……但现在失败了。任何人有任何技巧或方法来解决它吗?
有一次....我不知道为什么,我看到 OSX 安全弹出窗口指示 "java" 不是受信任的应用程序,我的设置只允许应用程序商店应用程序。但这只发生过一次……而且很奇怪。我点击确定,它消失了。我以为 java 可能已被隔离,所以我执行了清除该标志的命令:
xattr -rd com.apple.quarantine /path/to/the/binary/java
但这没有什么区别。我确定这是 Catalina 中的新安全功能,使事情变得困难……但我无法弄清楚为什么或如何解决这些问题。它是一个 java 应用程序,通过 app.command 文件启动,该文件在机器上找到 java 然后启动它...默认在其自己的子文件夹中查找本地副本。
检查项目的沙箱设置。 App Sandbox
应在权利文件中设置为 false。
沙盒功能可防止您的应用提升应用中的权限。
参考:https://developer.apple.com/app-sandboxing/