"ограниченная" папка / файлы в 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 следующим образом
- перезагружать
- как только вы услышите "звук Mac" на сером экране, нажмите Cmd+R, чтобы войти в режим восстановления
- Откройте Утилиты-> Терминал
- Запустите команду
csrutil disable
- Перезагрузившись, вы попадете в обычную ОС с отключенным SIP
- сделать все изменения, которые вы хотели бы сделать
- Перезагрузите снова
- как только вы услышите "звук Mac" на сером экране, нажмите Cmd+R, чтобы войти в режим восстановления
- Включить SIP с
csrutil enable
- Перезагрузите снова
- сделанный
До тех пор, пока 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
Это позволит вам изменять разрешения по мере необходимости.
- Просто загрузитесь в режиме "Восстановление", нажав "CMD+R" во время перезагрузки.
- Открытый терминал
- Ваш диск будет смонтирован в /Volumes/Macintosh HD
- Удалите файлы через "rm": у вас есть абсолютный контроль над этим терминалом.
Я использую клонер с копией, чтобы создавать клонируемые резервные копии... и несколько вращающихся.
По словам Майка из bombich, "SIP применяется только к тому, с которого вы сейчас загружаетесь, поэтому [можно] загрузиться с резервного тома, чтобы удалить [файлы]".
Я использовал ответ Йоханнеса (диск восстановления, включение / отключение csrutil), но для этого требуется перезагрузка -> диск восстановления -> отключить sip -> перезагрузить -> удалить дерьмо -> перезагрузить -> диск восстановления -> снова включить sip - > Перезагрузка... четыре перезагрузки.
Но загрузка с клона и просмотр исходного диска в качестве дополнительного диска позволит вам удалить проблемные файлы в двух перезагрузках... да?
Вы можете "обойти" защиту SIP, изменив права доступа к файлу через приложение Finder для системной группы.
У меня все работало нормально даже после перезагрузки бегу
ProductName: Mac OS X
ProductVersion: 10.11
BuildVersion: 15A284