"ограниченная" папка / файлы в OS X El Capitan

После обновления с OS X Yosemite до OS X El Capitan Developer Preview я попытался отредактировать /System/Library/LaunchDaemons/ssh.plist, чтобы изменить порт SSH по умолчанию на собственный. Это процесс, которым я пользуюсь пару лет.

Проблема в том, что El Capitan не позволяет мне что-либо менять в этой папке (даже с "sudo"). Папка и ее файлы помечаются как "ограниченные", когда я перечисляю содержимое с помощью "ls -lO". Тот же список папок в предыдущих версиях OS X не показывает "ограниченный".

Это что-то новое для OS X El Capitan? Как я могу редактировать файлы / папки, которые "ограничены"?


Я узнал, что это связано с новой функцией, представленной в El Capitan, под названием "SIP" (защита системной целостности).

Подробнее читайте здесь: https://forums.developer.apple.com/thread/4731?q=SIP

К сожалению, никто не предложил способ редактирования "ограниченных" файлов / папок без фактического отключения SIP.

7 ответов

Решение

Вы также можете временно отключить SIP следующим образом

  1. перезагружать
  2. как только вы услышите "звук Mac" на сером экране, нажмите Cmd+R, чтобы войти в режим восстановления
  3. Откройте Утилиты-> Терминал
  4. Запустите команду csrutil disable
  5. Перезагрузившись, вы попадете в обычную ОС с отключенным SIP
  6. сделать все изменения, которые вы хотели бы сделать
  7. Перезагрузите снова
  8. как только вы услышите "звук Mac" на сером экране, нажмите Cmd+R, чтобы войти в режим восстановления
  9. Включить SIP с csrutil enable
  10. Перезагрузите снова
  11. сделанный

До тех пор, пока 10.11 не снимет защиту с определенных файлов в /System/Library или не позволит вам сделать это самостоятельно, единственным способом без отключения SIP будет создание другой службы путем копирования файла в другом месте, например:

sudo cp /System/Library/LaunchDaemons/ssh.plist /Library/LaunchDaemons/ssh.plist

И тогда вместо использования панели "Общий доступ" в "Системных настройках" вы будете управлять службой самостоятельно:

sudo launchctl unload /Library/LaunchDaemons/ssh.plist
sudo launchctl load -w /Library/LaunchDaemons/ssh.plist

Я бы посоветовал вам попробовать добавить все необходимые аргументы в список в /Library/Preferences/. Например, в моем случае мне нужно было внести небольшое изменение в mDNSResponder, чтобы добавить флаг AlwaysAppendSearchDomains. Как предложено "bwells" на форумах разработчиков Apple, мне просто нужно было сделать

sudo launchctl unload /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
sudo defaults write /Library/Preferences/com.apple.mDNSResponder.plist AlwaysAppendSearchDomains -bool YES
sudo launchctl load /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist

Это гораздо более чистый подход, который сохраняется при перезагрузках и должен также выдержать обновление (по крайней мере, во время бета-версий мои ручные изменения после отключения SIP были перезаписаны). Обратите внимание, насколько я знаю, это ново для El Capitan.

Вы также можете оставить SIP включенным, отключив управление файловой системой. Перезагрузитесь в режиме восстановления и запустите:

csrutil enable --without fs

Это позволит вам изменять разрешения по мере необходимости.

  1. Просто загрузитесь в режиме "Восстановление", нажав "CMD+R" во время перезагрузки.
  2. Открытый терминал
  3. Ваш диск будет смонтирован в /Volumes/Macintosh HD
  4. Удалите файлы через "rm": у вас есть абсолютный контроль над этим терминалом.

Я использую клонер с копией, чтобы создавать клонируемые резервные копии... и несколько вращающихся.

По словам Майка из bombich, "SIP применяется только к тому, с которого вы сейчас загружаетесь, поэтому [можно] загрузиться с резервного тома, чтобы удалить [файлы]".

Я использовал ответ Йоханнеса (диск восстановления, включение / отключение csrutil), но для этого требуется перезагрузка -> диск восстановления -> отключить sip -> перезагрузить -> удалить дерьмо -> перезагрузить -> диск восстановления -> снова включить sip - > Перезагрузка... четыре перезагрузки.

Но загрузка с клона и просмотр исходного диска в качестве дополнительного диска позволит вам удалить проблемные файлы в двух перезагрузках... да?

Вы можете "обойти" защиту SIP, изменив права доступа к файлу через приложение Finder для системной группы.

изменение разрешений

У меня все работало нормально даже после перезагрузки бегу

ProductName: Mac OS X ProductVersion: 10.11 BuildVersion: 15A284

Другие вопросы по тегам