Sudo nie może utworzyć pliku w / usr / bin w El Capitan


14

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ć?

wprowadź opis zdjęcia tutaj


OS X El Capitan jest bezrootowy. Funkcję tę można wyłączyć z partycji odzyskiwania.
fd0

Odpowiedzi:


17

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+Rprzy 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


1
Wyłączyłem i nadal nie mogę nic robić:/Users/Rob$ csrutil status System Integrity Protection status: disabled. /Users/Rob$ touch /usr/bin/yes touch: /usr/bin/yes: Permission denied
Roberto,

Spróbuj z sudo.
Ragnar

W większości przypadków lepiej jest zainstalować lokalne dostosowania w / usr / local (np. / Usr / local / bin zamiast / bin lub / usr / bin). Po to jest i tak było od dawna. Jeśli to możliwe, zalecam stosowanie tej najlepszej praktyki zamiast wyłączania SIP. Jeśli naprawdę musisz wprowadzić zmiany w ograniczonej lokalizacji, najlepiej wyłączyć SIP, wprowadzić zmiany, a następnie natychmiast ponownie włączyć SIP za pomocą csrutil enable(w trybie odzyskiwania).
Gordon Davisson,

3

Jak wspomniano Ragnar , /usrkatalog 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”.


2

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 -Oopcji 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.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.