Я вчора перейшов на Ель-Капітан, і все було добре до недавнього часу, коли я помітив, що не можу нічого написати (з sudo ofc) на / usr / bin, коли намагався встановити phpbrew.
Що може бути причиною цього та як його усунути?
Я вчора перейшов на Ель-Капітан, і все було добре до недавнього часу, коли я помітив, що не можу нічого написати (з sudo ofc) на / usr / bin, коли намагався встановити phpbrew.
Що може бути причиною цього та як його усунути?
Відповіді:
Починаючи з OSX 10.11, Apple посилила систему безпеки. Викликається система захисту цілісності , Apple блокує:
/System
/sbin
/usr (with the exception of /usr/local subdirectory)
Щоб вимкнути цю функцію безпеки, вам доведеться перезавантажити комп'ютер і утримувати його CMD+R
при запуску в режим відновлення OS X.
Потім OS X Utilities > Terminal
Введіть команду csrutil disable; reboot
Ваш комп'ютер перезавантажиться. Ви побачите повідомлення про підтвердження дезактивації.
Для перевірки стану типу CRS csrutil status
/Users/Rob$ csrutil status System Integrity Protection status: disabled. /Users/Rob$ touch /usr/bin/yes touch: /usr/bin/yes: Permission denied
sudo
.
csrutil enable
(у режимі відновлення).
Як згадував Рагнар , /usr
каталог блокується системою, за винятком /usr/local
. Потім, якщо ваш сценарій дозволяє, я рекомендую додати символьне посилання на /usr/local/bin
. Якщо у вас немає суворої вимоги щодо використання /usr/bin
, це один із способів вирішити помилку "Операція не дозволена".
Можна перевірити, чи певний файл чи каталог обмежений захистом системної цілісності (SIP) OSX / Rootless, перерахувавши прапори файлів, використовуючи -O
опцію ls (наприклад, щоб побачити, які каталоги в / обмежені):
ls -Ol /
Каталоги або файли, якими керує SIP, відображаються як "обмежені".
У відповідях на це питання про SIP / без корінців є повні деталі .