为什么在 MacOS 上使用自制软件安装的可执行文件受信任?
why are executables installed with homebrew trusted on MacOS?
我有一个关于自制软件的愚蠢问题:为什么我通过自制软件安装的可执行文件受 MacOS(看门人)信任?即在安装后我可以 运行 一个可执行文件并且不会出现安全弹出窗口并且不必允许异常 - 这是为什么?
我最初认为 homebrew 可能 sign/notarize 它们 CI 中的二进制文件,但查看一些随机的可执行文件,它们看起来不像有签名:spctl -a -v $(which <some-executable-installed-with-homebrew>)
。
编辑:意思是从 bottles 安装的可执行文件(预编译的二进制文件,不是在我本地机器上编译的源包)
使用 curl 下载的 CLI 应用程序没有隔离标志。
Home-brew,使用 UNIX 核心工具下载瓶子,因此他们没有设置此标志。
Next home-brew 也特别标记二进制文件。
不要混淆代码签名和公证。
公证是 Apple 为使用开发证书私钥签名的软件提供担保的地方
根据定义,他们不能公证临时签名的软件(如自制瓶)。
Now when my executable is NOT notarized it terminates with "Killed: 9", regardless if there's a quarantine attribute or not.
这正在发生,我推测是因为这里的二进制文件 不是 临时签名的。与公证无关。
我打赌你在使用 Apple Silicon,对吧?
我有一个关于自制软件的愚蠢问题:为什么我通过自制软件安装的可执行文件受 MacOS(看门人)信任?即在安装后我可以 运行 一个可执行文件并且不会出现安全弹出窗口并且不必允许异常 - 这是为什么?
我最初认为 homebrew 可能 sign/notarize 它们 CI 中的二进制文件,但查看一些随机的可执行文件,它们看起来不像有签名:spctl -a -v $(which <some-executable-installed-with-homebrew>)
。
编辑:意思是从 bottles 安装的可执行文件(预编译的二进制文件,不是在我本地机器上编译的源包)
使用 curl 下载的 CLI 应用程序没有隔离标志。 Home-brew,使用 UNIX 核心工具下载瓶子,因此他们没有设置此标志。
Next home-brew 也特别标记二进制文件。
不要混淆代码签名和公证。
公证是 Apple 为使用开发证书私钥签名的软件提供担保的地方
根据定义,他们不能公证临时签名的软件(如自制瓶)。
Now when my executable is NOT notarized it terminates with "Killed: 9", regardless if there's a quarantine attribute or not.
这正在发生,我推测是因为这里的二进制文件 不是 临时签名的。与公证无关。
我打赌你在使用 Apple Silicon,对吧?