MacOS 10.13.4下sudo创建/usr/bin备份目录提示权限不允许求助
解决MacOS 10.13.4下无法修改/usr/bin目录及优先使用brew安装的Git问题
这个问题的核心原因是MacOS的系统完整性保护(System Integrity Protection,简称SIP)——从El Capitan(10.11)开始,苹果就对/usr/bin这类核心系统目录施加了严格的权限限制,哪怕你用sudo获取了root权限,也无法直接修改这个目录下的内容,这就是你收到Operation not permitted错误的原因。
下面给你两种解决方案,优先推荐第一种(更安全,不改动系统核心文件):
方案一:无需修改系统Git,直接让终端优先使用brew安装的版本
brew安装的Git默认放在/usr/local/bin/git,只要让这个路径在你的系统PATH中优先级高于/usr/bin,终端就会自动调用新版本的Git:
- 打开终端,编辑你的shell配置文件:
- 如果你用的是Bash,执行
open ~/.bash_profile - 如果你用的是Zsh(MacOS 10.13默认还是Bash,但也可能自行切换了),执行
open ~/.zshrc
- 如果你用的是Bash,执行
- 在文件末尾添加一行:
export PATH="/usr/local/bin:$PATH" - 保存文件后,回到终端执行以下命令让配置生效:
- Bash用户:
source ~/.bash_profile - Zsh用户:
source ~/.zshrc
- Bash用户:
- 验证效果:执行
git --version,此时应该显示brew安装的最新Git版本了。
方案二:临时关闭SIP修改系统Git(不推荐,存在安全风险)
如果你一定要备份/移除系统自带的Git,只能临时关闭SIP,但这会降低系统的安全性,操作前请谨慎考虑:
- 重启你的Mac,在开机过程中按住Command + R进入恢复模式
- 在恢复模式中,点击顶部菜单栏的「实用工具」→「终端」
- 在终端中执行命令关闭SIP:
csrutil disable - 执行完成后,重启Mac回到正常系统
- 现在你就可以执行之前的命令备份系统Git了:
sudo mkdir /usr/bin/backup-git-apple sudo mv /usr/bin/git* /usr/bin/backup-git-apple/ - 操作完成后,记得重新开启SIP:再次重启进入恢复模式,在终端执行
csrutil enable,然后重启系统。
注意:修改系统核心目录可能导致后续系统更新出现兼容性问题,因此强烈建议使用方案一解决问题。
内容的提问来源于stack exchange,提问作者Johnny.Rian




