隨着macOS Catalina發佈,蘋果引入了新的文件系統保護機制並默認啓用,將根目錄(/)設置為只讀狀態。這一變化雖然增強了系統的安全性,但也給一些需要在根目錄下創建或修改文件的用户帶來了不便。本文將重點介紹如何通過修改/etc/synthetic.conf配置文件,在根目錄下掛載一個可寫的目錄,從而滿足特定需求。
假設需要在根目錄下創建/data目錄,即使使用sudo也會提示Read-only file system,如下:
~ sudo mkdir /data
Password:
mkdir: /data: Read-only file system
synthetic.conf配置文件
如果你只需要在根目錄下的一個特定目錄中寫入文件,例如上面例子中的/data,可以通過修改/etc/synthetic.conf配置文件來實現,步驟如下:
-
首先在當前用户的HOME目錄創建一個
data目錄,這個目錄是可以直接寫入的。 -
然後在終端運行命令:
echo -e "data\tUsers/$USER/data" | sudo tee -a /etc/synthetic.conf -
重啓系統,你會發現在根目錄下已經有了一個
data目錄,實際上是指向了你的HOME目錄下的data目錄。
禁用系統完整性保護(SIP)
你也可以通過禁用SIP來解決根目錄只讀問題,但這種方法會顯著降低系統的安全性,因此不建議長期使用。禁用SIP需要在恢復模式下運行csrutil disable命令,並在完成操作後重新啓用(csrutil enable)。
參考鏈接
man synthetic.conf- https://apple.stackexchange.com/a/372500
- https://support.apple.com/en-us/102149