mac系统可通过仅勾选“app store”并执行sudo spctl --master-enable彻底禁用第三方软件安装:取消“被认可的开发者”选项切断签名信任链,禁用gatekeeper运行时放行机制后,control+点击无“打开”选项,双击直接报“已损坏”且无任何放行按钮。

Mac系统默认允许从App Store和被认可的开发者安装软件,但网页下载的.dmg或.pkg应用仍可手动绕过限制运行——要真正杜绝网页软件安装,必须关闭所有非App Store路径的执行权限,并禁用Gatekeeper对第三方包的放行能力。
关闭“被认可的开发者”来源
这一步直接切断系统对已签名但非App Store渠道软件的信任链,让所有非Mac App Store分发的应用在首次启动时即被拦截。
打开「系统设置」→「隐私与安全性」→ 向下滚动至「安全性」区域
点击右下角锁形图标,输入管理员密码解锁设置
在「允许从以下位置下载的应用」中,【仅勾选“App Store”一项,取消勾选“App Store 和被认可的开发者”】
关闭窗口后,任何来自网页下载、邮件附件或U盘的已签名应用(如Chrome、Slack官方pkg)双击将直接弹出“已阻止使用”提示,无法进入“仍要打开”流程。
禁用Gatekeeper的运行时放行机制
即使用户右键Control+点击→选择“打开”,macOS仍会提供一次性的“仍要打开”按钮;此功能由Gatekeeper守护进程控制,需通过终端命令彻底停用。
方法一:禁用Gatekeeper校验服务
打开「终端」,执行:
sudo spctl --master-enable
输入管理员密码(输入时无显示,凭记忆准确输入后回车)
该命令将重置Gatekeeper为严格模式,【此后Control+点击→“打开”将不再显示“仍要打开”按钮,而是直接报错并终止】
方法二:清除系统对已尝试应用的临时信任记录(可选补救)
若此前已点过“仍要打开”,该应用已被写入信任列表,需手动清理:
sudo xattr -rd com.apple.quarantine /Applications/应用名.app
把“应用名.app”替换为你曾放行过的具体软件名称,例如Slack.app
验证设置是否生效
第一步:下载一个网页版Chrome安装包(.dmg格式),挂载后拖入「应用程序」文件夹
第二步:在「访达」中定位到该Chrome.app → 双击启动
第三步:观察弹窗——此时应出现纯红色警告:“Chrome 已损坏,无法打开。您应该将它移到废纸篓。”且下方【没有“打开”按钮,也没有“仍要打开”选项】
第四步:尝试Control+点击该图标 → 菜单中“打开”项呈灰色不可选











