Судо не може створити файл у / usr / bin в El Capitan


14

Я вчора перейшов на Ель-Капітан, і все було добре до недавнього часу, коли я помітив, що не можу нічого написати (з sudo ofc) на / usr / bin, коли намагався встановити phpbrew.

Що може бути причиною цього та як його усунути?

введіть тут опис зображення


OS X El Capitan без корінь. Ця функція може бути відключена з розділу відновлення.
fd0

Відповіді:


17

Починаючи з 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


1
Я відключив, і це все ще не дозволяє мені нічого робити:/Users/Rob$ csrutil status System Integrity Protection status: disabled. /Users/Rob$ touch /usr/bin/yes touch: /usr/bin/yes: Permission denied
Роберто

Спробуйте з sudo.
Рагнар

У більшості випадків краще встановити локальні налаштування в / usr / local (наприклад, / usr / local / bin, а не / bin або / usr / bin). Це для чого, і це вже давно. Якщо можливо, я б рекомендував дотримуватися цієї найкращої практики, а не вимикати SIP. Якщо вам дійсно потрібно внести зміни в обмежене місцеположення, краще відключити SIP, внести зміни, а потім негайно ввімкнути SIP за допомогою csrutil enable(у режимі відновлення).
Гордон Девіссон

3

Як згадував Рагнар , /usrкаталог блокується системою, за винятком /usr/local. Потім, якщо ваш сценарій дозволяє, я рекомендую додати символьне посилання на /usr/local/bin. Якщо у вас немає суворої вимоги щодо використання /usr/bin, це один із способів вирішити помилку "Операція не дозволена".


2

Можна перевірити, чи певний файл чи каталог обмежений захистом системної цілісності (SIP) OSX / Rootless, перерахувавши прапори файлів, використовуючи -Oопцію ls (наприклад, щоб побачити, які каталоги в / обмежені):

ls -Ol /

Каталоги або файли, якими керує SIP, відображаються як "обмежені".

У відповідях на це питання про SIP / без корінців є повні деталі .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.