Mac权限问题,operation not permitted

即便我们用了sudo还是没有权限,例如我们希望修改/usr/bin目录下的文件名

$ sudo mv /usr/bin/vim /usr/bin/vim-old
Password:
mv: rename vim to vim-old: Operation not permitted

这是因为,电脑启用了SIP(System Integrity Protection),增加了rootless机制,即使在root权限下依然无法修改文件。

不推荐方案:关闭SIP

如果我们还是需要修改目录/usr/bin目录下的文件,就需要关闭SIP,具体步骤下:

  1. 重启,过程中按住 command+R,进入保护模式
  2. 打开terminal终端,输入
csrutil disable

3. 重启,即可对 usr/bin 目录下文件进行修改

文件修改完之后,再重新打开SIP,步骤与上面相同,只是执行的命令换成

csrutil enable

推荐方案:alias

其实还是尽量不要去关闭SIP,比较简单的办法是在zsh或bash的配置文件中添加alias,例如我们用brew安装了vim,然后我们需要用覆盖mac自带的vim,以zsh为例,我们可以在文件~/.zshrc中添加如下代码

alias vim="/usr/local/bin/vim"
alias vimdiff="/usr/local/bin/vimdiff"
alias vi="/usr/local/bin/vi"
alias view="/usr/local/bin/view"
alias vimdiff="/usr/local/bin/vimdiff"
alias vimtutor="/usr/local/bin/vimtutor"

重新登陆,或执行下面命令,让alias生效,

source ~/.zshrc

 

原文地址:https://www.cnblogs.com/ppzhang/p/15573645.html