Uaktualniłem do El Capitan wczoraj i wszystko było dobrze do niedawna, kiedy zauważyłem, że nie mogę napisać niczego (z sudo ofc) na / usr / bin, gdy próbowałem zainstalować phpbrew.
Co może być tego przyczyną i jak go rozwiązać?
Uaktualniłem do El Capitan wczoraj i wszystko było dobrze do niedawna, kiedy zauważyłem, że nie mogę napisać niczego (z sudo ofc) na / usr / bin, gdy próbowałem zainstalować phpbrew.
Co może być tego przyczyną i jak go rozwiązać?
Odpowiedzi:
Od OSX 10.11 Apple wzmocniło system bezpieczeństwa. Firma Apple, zwana ochroną integralności systemu , blokuje się:
/System
/sbin
/usr (with the exception of /usr/local subdirectory)
Aby wyłączyć tę funkcję bezpieczeństwa, musisz ponownie uruchomić komputer i przytrzymać CMD+R
przy starcie rozruchu w trybie odzyskiwania OS X.
Następnie OS X Utilities > Terminal
Wpisz polecenie csrutil disable; reboot
Twój komputer uruchomi się ponownie. Zobaczysz komunikat potwierdzający dezaktywację.
Aby zweryfikować status typu 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
(w trybie odzyskiwania).
Jak wspomniano Ragnar , /usr
katalog jest zablokowany przez system, z wyjątkiem /usr/local
. Następnie, jeśli pozwala na to Twój scenariusz, polecam dodanie linku symbolicznego /usr/local/bin
. Jeśli nie masz ścisłych wymagań dotyczących używania /usr/bin
, jest to jeden ze sposobów obejścia błędu „Operacja niedozwolona”.
Można sprawdzić, czy określony plik lub katalog jest ograniczony przez System Integrity Protection (SIP) OSX / Rootless, wyświetlając flagi plików przy użyciu -O
opcji ls (np. Aby zobaczyć, które katalogi w / są ograniczone):
ls -Ol /
Katalogi lub pliki kontrolowane przez SIP są oznaczone jako „ograniczone”.
Pełne informacje znajdują się w odpowiedziach na to pytanie dotyczące SIP / rootless.