"ограниченная" папка/файлы в 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.
Ответы
Ответ 1
Вы также можете временно отключить SIP следующим образом.
- перезагрузка
- как только вы услышите "Звук Mac" на сером экране, нажмите Cmd + R, чтобы перейти в режим восстановления
- Open Utilities- > Terminal
- Запустите команду
csrutil disable
- Перезагрузитесь, вы приземлитесь в обычную ОС с отключенным SIP.
- выполнить все изменения, которые вы хотите сделать
- Перезагрузка снова
- как только вы услышите "Звук Mac" на сером экране, нажмите Cmd + R, чтобы перейти в режим восстановления
- Включить SIP с помощью
csrutil enable
- Перезагрузка снова
- сделано
Ответ 2
Пока 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
Ответ 3
Я предлагаю вам попробовать добавить все аргументы, необходимые для 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.
Ответ 4
Вы также можете оставить SIP включенным при отключении управления файловой системой. Перезагрузитесь в режиме восстановления и выполните:
csrutil enable --without fs
Это позволит вам изменять разрешения по мере необходимости.
Ответ 5
Я использую клонирование копий копий, чтобы сделать клонированные резервные копии... и иметь несколько во вращении.
Согласно mike at bombich "SIP применяется только к тому тому, в который вы загружаетесь, поэтому [можно] загрузиться с тома резервной копии, чтобы удалить [файлы]".
Я использовал ответ johannes (диск восстановления, csrutil enable/disable), но для этого требуется перезагрузка → диск восстановления → включить sip off → reboot → удалить crap → reboot → recovery drive → turn sip назад → перезагрузка... четыре перезагрузки.
Но загрузка с клона и просмотр исходного диска в качестве дополнительного диска позволит вам удалить проблемные файлы в две перезагрузки... да?
Ответ 6
- Просто загрузитесь в режим "Восстановление", нажав "CMD + R" во время перезагрузки.
- Открытый терминал
- Ваш диск будет установлен в /Volumes/Macintosh HD
- Удалить файлы через "rm": у вас есть абсолютный контроль в этом терминале.
Ответ 7
Вы можете "передать" защиту SIP путем изменения разрешений на файл через приложение Finder для системной группы.
изменение разрешений
Он работал отлично для меня даже после перезагрузки, я запускаю
ProductName: Mac OS X
ProductVersion: 10.11
BuildVersion: 15A284