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,具体步骤下:
- 重启,过程中按住 command+R,进入保护模式
- 打开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