在OS X El Capitan 10.11中,在root下复制文件失败了

时间:2015-09-15 15:31:54

标签: macos bash terminal osx-elcapitan

我正在尝试将根文件复制到/ 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

3 个答案:

答案 0 :(得分:40)

El Capitan现在保护"无根"中的某些系统目录。模式(a.k.a.系统完整性保护)。如果您运行命令ls -lO /System/Library/LaunchDaemons,您将看到其下的目录和文件现在标记为"受限制。"

您可以像这样禁用无根模式:

  1. 重新启动进入恢复模式(重启并按住Cmd-R)
  2. 打开终端
  3. 使用此命令:csrutil disable
  4. 重新启动并运行El Capitan之前的命令
  5. 完成后,强烈建议您按照相同的步骤重新启用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中。