You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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:

  1. 打开终端,编辑你的shell配置文件:
    • 如果你用的是Bash,执行open ~/.bash_profile
    • 如果你用的是Zsh(MacOS 10.13默认还是Bash,但也可能自行切换了),执行open ~/.zshrc
  2. 在文件末尾添加一行:
    export PATH="/usr/local/bin:$PATH"
    
  3. 保存文件后,回到终端执行以下命令让配置生效:
    • Bash用户:source ~/.bash_profile
    • Zsh用户:source ~/.zshrc
  4. 验证效果:执行git --version,此时应该显示brew安装的最新Git版本了。

方案二:临时关闭SIP修改系统Git(不推荐,存在安全风险)

如果你一定要备份/移除系统自带的Git,只能临时关闭SIP,但这会降低系统的安全性,操作前请谨慎考虑:

  1. 重启你的Mac,在开机过程中按住Command + R进入恢复模式
  2. 在恢复模式中,点击顶部菜单栏的「实用工具」→「终端」
  3. 在终端中执行命令关闭SIP:
    csrutil disable
    
  4. 执行完成后,重启Mac回到正常系统
  5. 现在你就可以执行之前的命令备份系统Git了:
    sudo mkdir /usr/bin/backup-git-apple
    sudo mv /usr/bin/git* /usr/bin/backup-git-apple/
    
  6. 操作完成后,记得重新开启SIP:再次重启进入恢复模式,在终端执行csrutil enable,然后重启系统。

注意:修改系统核心目录可能导致后续系统更新出现兼容性问题,因此强烈建议使用方案一解决问题。

内容的提问来源于stack exchange,提问作者Johnny.Rian

火山引擎 最新活动