我正在尝试将根文件复制到/ 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
答案 0 :(得分:40)
El Capitan现在保护"无根"中的某些系统目录。模式(a.k.a.系统完整性保护)。如果您运行命令ls -lO /System/Library/LaunchDaemons
,您将看到其下的目录和文件现在标记为"受限制。"
您可以像这样禁用无根模式:
csrutil disable
完成后,强烈建议您按照相同的步骤重新启用SIP,但在步骤3中使用csrutil enable
。
在尝试安装pear / pecl模块和macports / homebrew应用程序时遇到了同样根本原因的问题。那些通常需要将文件安装到/ usr / include和/ usr / lib中,这些文件现在也受到限制。
注意:互联网上有关此问题的先前答案为您提供了修改NVRAM设置的说明,但Apple表示NVRAM方法将停止使用El Capitan的公开发布。 GM版本已经禁用了NVRAM的解决方法,因此这个答案应该可以帮助您实现前进的目标。
更新:同样的方法适用于macOS Sierra,可能在可预见的未来适用于新的macOS版本。
答案 1 :(得分:8)
考虑到在OS X 10.11(El Capitan)下保护某些系统目录完全不被写入(即使是root用户),除非禁用安全措施(请参阅 Chris Ostmo的回答),它&#39显然不应该使用自定义系统黑客来修改这些目录。
应将自己的LaunchDaemons安装到:
/Library/LaunchDaemons/
(不是 / System / Library / LaunchDaemons / )
答案 2 :(得分:0)
不,但如果您使用 El Captain 的第二份副本来启动您的系统,例如:
从usb密钥上的先前安装中启动El Captain,然后就可以执行此操作
cd /Volumes/Usb-Drive
然后在finder中显示目录:
sudo chflags nohidden usr
然后只需用鼠标复制文件,拖放到finder中。