Подтвердить что ты не робот

Копирование файла под root не удалось в OS X El Capitan 10.11

Я пытаюсь скопировать под корневым файлом в папку /System. Он хорошо работает на всех предыдущих версиях OS X, но не на El Capitan 10.11

Вот как я копирую файл под root в терминале:

MACMINI:~ myusername$ sudo su -
MACMINI:~ root# cp /Users/myusername/Desktop/myfile.plist /System/Library/LaunchDaemons/

В результате я получаю сообщение об ошибке:

cp: /System/Library/LaunchDaemons/myfile.plist: Operation not permitted
4b9b3361

Ответ 1

Учитывая, что некоторые системные каталоги защищены от записи вообще (даже с помощью root) под OS X 10.11 (El Capitan), если измерения безопасности не отключены (см. ответ Криса Остмо), очевидно, хорошая идея не изменять эти каталоги вообще с пользовательскими хаками системы.

Собственные LaunchDaemons должны быть установлены на:

/Library/LaunchDaemons/

(not/System/Library/LaunchDaemons/)

Ответ 2

El Capitan теперь защищает определенные системные каталоги в режиме "без корней" (защита целостности системы a.k.a.). Если вы запустите команду ls -lO /System/Library/LaunchDaemons, вы увидите, что находящиеся там каталоги и файлы теперь помечены как "ограниченные".

Вы можете отключить режим без rootless, например:

  • Перезагрузитесь в режим восстановления (перезагрузите и удерживайте 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, поэтому этот ответ должен помочь вам в продвижении вперед.

UPDATE: этот же метод применим к macOS Sierra и, возможно, новым версиям macOS в обозримом будущем.

Ответ 3

Нет, но если вы используете вторую копию El Captain для загрузки вашей системы, например:

Boot El Captain из предыдущей установки на USB-ключ, тогда вы можете сделать это

cd /Volumes/Usb-Drive 

Затем, чтобы показать каталог в finder, сделайте следующее:

sudo chflags nohidden usr

Затем просто скопируйте файлы с помощью мыши, перетащите мышью в finder.