«Ограниченная» папка / файлы в 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» (System Intregrity Protection) .

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

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

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

  1. перезагружать
  2. как только вы услышите «Звук Mac» на сером экране, нажмите Cmd + R, чтобы перейти в режим восстановления
  3. Open Utilities-> Terminal
  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 

Я предлагаю вам попробовать добавить все аргументы, необходимые для 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 были перезаписаны). Заметьте, насколько я знаю, это ново для Эль Капитан.

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

 csrutil enable --without fs 

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

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

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

Я использовал ответ johannes (диск восстановления, включение / выключение csrutil), но для этого требуется перезагрузка -> диск восстановления -> включить sip off -> reboot -> удалить crap -> reboot -> recovery drive -> снова включить sip – > перезагрузка … четыре перезагрузки.

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

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

Вы можете «передать» защиту SIP путем изменения разрешений на файл через приложение Finder для системной группы.

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

Это сработало для меня даже после перезагрузки, я бегу

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

  • Android-файл для сохранения на внешнем хранилище
  • Чтение UTF-8 - маркер спецификации
  • для IE дает полный путь, требуется только имя файла
  • .NET. Как проверить, является ли путь файлом, а не каталогом?
  • Почему значения cookie с пробелом поступают на стороне клиента с кавычками?
  • Как создать файл на внутреннем хранилище Android?
  • Ежедневный журнал Laravel, созданный с неправильными разрешениями
  • Файл с измененным прослушивателем в Java
  • Поставщик формата размера файла
  • Атомность `write (2)` в локальную файловую систему
  • Java - поиск файлов в каталоге
  • Давайте будем гением компьютера.