Sudo는 El Capitan의 / usr / bin에 파일을 만들 수 없습니다


14

나는 어제 El Capitan으로 업그레이드했으며 phpbrew를 설치하려고 시도했을 때 / usr / bin에 아무것도 (sudo ofc로) 쓸 수 없다는 것을 알았을 때까지 모든 것이 좋았습니다.

이 문제의 원인 및 해결 방법은 무엇입니까?

여기에 이미지 설명을 입력하십시오


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
Roberto

로 시도하십시오 sudo.
Ragnar

대부분의 경우 로컬 사용자 정의를 / usr / local에 설치하는 것이 좋습니다 (예 : / bin 또는 / usr / bin이 아닌 / usr / local / bin). 그것이 바로 그것이었고, 이것은 오랫동안 그랬습니다. 가능하면 SIP를 비활성화하는 대신이 모범 사례를 따르는 것이 좋습니다. 제한된 위치에서 실제로 변경해야하는 경우 SIP를 비활성화하고 변경 한 다음 즉시 csrutil enable(복구 모드에서) SIP를 다시 활성화하는 것이 가장 좋습니다 .
Gordon Davisson

3

라그나 언급/usr디렉토리를 제외하고, 시스템에 의해 아래로 잠겨 있습니다 /usr/local. 그런 다음 시나리오에서 허용하는 경우에 심볼릭 링크를 추가하는 것이 좋습니다 /usr/local/bin. 사용에 대한 엄격한 요구 사항이없는 경우 /usr/bin"작업이 허용되지 않음"오류를 해결하는 한 가지 방법입니다.


2

-Ols에 옵션을 사용하여 파일 플래그를 나열하여 OSX의 SIP (System Integrity Protection) / Rootless에 의해 특정 파일 또는 디렉토리가 제한되는지 확인할 수 있습니다 (예 : /에있는 디렉토리가 제한되어 있는지 확인).

ls -Ol /

SIP에 의해 제어되는 디렉토리 또는 파일은 '제한적'으로 표시됩니다.

SIP / rootless에 대한 이 질문 에 대한 답변에는 자세한 내용이 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.