【MacOS之SIP】SIP标识符restricted 和 取消SIP保护
前言
我尝试操作/bin
目录下的文件,比如执行chmod 777 ./sh
、mkdir test-dir
,会发现报错Operation not permitted
这是由SIP(系统完整性保护)引起的
在受SIP保护的目录中,我们无法进行创建文件、修改文件等操作
restricted
如果你使用ls -lO
查看/usr/local
,你会发现下面的大部分文件都被打上了restricted
标志
wushu@wushudeMacBook-Pro /bin % ls -lO
total 9400
-rwxr-xr-x 1 root wheel restricted,compressed 121120 Jan 1 2020 [
-r-xr-xr-x 1 root wheel restricted,compressed 1296704 Jan 1 2020 bash
-rwxr-xr-x 1 root wheel restricted,compressed 121984 Jan 1 2020 cat
-rwxr-xr-x 1 root wheel restricted,compressed 107552 Jan 1 2020 chmod
-rwxr-xr-x 1 root wheel restricted,compressed 123264 Jan 1 2020 cp
-rwxr-xr-x 1 root wheel restricted,compressed 1106144 Jan 1 2020 csh
-rwxr-xr-x 1 root wheel restricted,compressed 277440 Jan 1 2020 dash
-rwxr-xr-x 1 root wheel restricted,compressed 139312 Jan 1 2020 date
这就是SIP的标识符,它的用途就是告诉macOS的SIP,这个文件受到系统保护,不能更改。
取消SIP保护
我们可以先执行
csrutil status
查看SIP保护是否处于开启状态
首先,重启电脑,按Command+R
进入恢复模式,打开恢复模式下的终端
接下来有两种命令取消SIP保护。
最常用的 csrutil disable
执行csrutil disable
即可
但这可能使系统陷入风险
最安全的
先cd
到目标目录,如cd /Volumes/你的硬盘名/bin
然后执行chflags -R norestricted
,便可以把当前目录以及他们子目录下的所有文件解除保护(链接除外,需手动处理)