macos中遇“operation not permitted”错误是因sip启用;可临时禁用sip、用sudo加--no-sandbox参数安装、改装至用户目录或手动解包部署至~/bin。

如果您在macOS系统中安装软件时遇到权限被拒绝的提示,或尝试修改系统关键目录时收到“Operation not permitted”错误,则可能是由于系统完整性保护(SIP)处于启用状态。以下是绕过SIP限制以完成特定安装操作的可行方法:
一、临时禁用SIP并安装软件
SIP会阻止对系统关键路径(如 /System、/usr、/bin 等)的写入操作。临时关闭SIP可使安装程序获得必要权限,但需重启进入恢复模式执行。
1、重启Mac,按住 Command + R 直到出现苹果标志与进度条,进入恢复模式。
2、顶部菜单栏选择“实用工具” → “终端”。
3、在终端中输入命令:csrutil disable,回车执行。
4、关闭终端,从“苹果菜单”选择“重新启动”。
5、系统重启后,使用管理员账户登录,再运行目标安装包。
二、使用sudo配合--no-sandbox参数安装Homebrew类工具
部分命令行安装脚本(如Homebrew、MacPorts)在SIP启用状态下仍可运行,但需规避沙盒限制与路径校验机制,通过提升执行权限并跳过安全检查实现安装。
1、打开“终端”应用。
2、输入命令:sudo curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh | bash。
3、若提示“/usr/local is not writable”,执行:sudo chown -R $(whoami) /usr/local。
4、继续运行安装命令,并在执行前添加环境变量:export HOMEBREW_NO_ENV_HINTS=1。
三、将软件安装至用户目录绕过SIP路径限制
SIP仅保护系统级路径,不干预用户主目录下的操作。将应用程序部署在 ~/Applications 或 ~/Library/Application Support 中,可完全避免权限冲突。
1、下载软件的.pkg或.dmg文件后,不要双击运行安装器。
2、右键点击安装包,选择“显示包内容”,定位到Resources或Scripts子目录。
3、查找install.sh或postinstall脚本,用文本编辑器打开。
4、将原脚本中所有以 /Applications 或 /usr/local 开头的目标路径,替换为 ~/Applications 或 ~/Library/Application Support。
5、保存修改,在终端中以 bash ./modified_install.sh 方式执行。
四、使用pkgutil手动解包并复制文件至用户空间
对于强制写入系统路径的.pkg安装包,可通过解包提取二进制文件,再手动部署至用户可写区域,从而避开SIP拦截。
1、在终端中执行:pkgutil --expand /path/to/package.pkg /tmp/pkg_contents。
2、进入 /tmp/pkg_contents 目录,查找 Payload 文件(通常为归档格式)。
3、使用 xar -xf Payload 解压,再用 tar -zxvf archive.pax.gz 提取实际文件。
4、检查解压后文件的原始目标路径,将其中非用户目录路径(如 /usr/bin)映射为 ~/bin。
5、创建对应用户目录:mkdir -p ~/bin,然后复制可执行文件过去。
6、将 ~/bin 添加至PATH:echo 'export PATH="$HOME/bin:$PATH"' >> ~/.zshrc && source ~/.zshrc。










