我正在尝试将根文件复制到 /System 文件夹中。它适用于所有以前的 OS X 版本,但不适用于 El Capitan 10.11
这是我在终端的根目录下复制文件的方法:
MACMINI:~ myusername$ sudo su -
MACMINI:~ root# cp /Users/myusername/Desktop/myfile.plist /System/Library/LaunchDaemons/
结果我收到一个错误:
cp: /System/Library/LaunchDaemons/myfile.plist: Operation not permitted
El Capitan 现在以“无根”模式保护某些系统目录(也称为系统完整性保护)。如果您运行命令ls -lO /System/Library/LaunchDaemons
您会看到下面的目录和文件现在被标记为“受限”。
您可以像这样禁用无根模式:
- 重新启动进入恢复模式(重新启动并按住 Cmd-R)
- 打开终端
- 使用这个命令:
csrutil disable
- 重新启动并运行 El Capitan 之前有效的命令
完成后,强烈建议您按照相同的步骤重新启用 SIP,但使用csrutil enable
在步骤 3 中。
我在尝试安装 pear/pecl 模块和 macports/homebrew 应用程序时遇到了具有相同根本原因的问题。这些通常需要将文件安装到 /usr/include 和 /usr/lib 中,这些文件现在也受到限制。
注意:互联网上以前关于此问题的答案为您提供了修改 NVRAM 设置的说明,但 Apple 表示 NVRAM 方法将停止与 El Capitan 的公开版本一起使用。 GM 版本已经禁用了 NVRAM 解决方法,因此这个答案应该可以满足您前进的需要。
更新:同样的方法适用于 macOS Sierra,并且在可预见的将来可能还适用于新的 macOS 版本。
ANOTHER UPDATE!
It looks like Catalina's trying to do us in. They moved all the files I had previously forced to go where the Linux stuff had to go:
![Contents of /Users/Shared/Relocated Items](https://i.stack.imgur.com/8oSFX.png)
And they left this funny notice:
I'm kind of wondering whose computer I'm using now.
无论如何,我认为大多数过去需要这种解决方法的工具(例如brew和PEAR)已经适应了。我真的不知道,因为让 macOS 的行为 100% 像 Linux 已经变得很愚蠢,所以当我需要命令行 Linux 东西时我使用虚拟机。
此解决方法对于 Catalina 可能仍然有效。我没试过。我不会为了研究而这样做,但如果我需要尝试一下,我会报告。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)