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