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

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM