삭제하려고 하는 것은 macOS의 인텔 그래픽 드라이버이다.
|
1. 개요
Apple 고객지원 홈페이지의 'Mac의 시스템 무결성 보호'에 대한 설명 페이지
루트리스(rootless) 혹은 SIP(System integrity protection, 시스템 무결성 보호)라고 하며, OS X El Capitan과 iOS 9에 적용된 기술이다.
루트리스(rootless) 혹은 SIP(System integrity protection, 시스템 무결성 보호)라고 하며, OS X El Capitan과 iOS 9에 적용된 기술이다.
2. 상세
일반적인 Unix 운영체제의 경우 rm -rf /를 하면 시스템 전체가 날아간다.[1] 유닉스 기반인 macOS도 이를 피해갈 수 없어서 rm -rf / 명령어로 모든 걸 날릴 수 있었다. 그러나, 10.11 들어서 root를 엿먹이는 루트리스(rootless) 혹은 시스템 무결성 보호라는 시스템이 도입되었다.
간단하게, 무결성 보호는 다음과 같은 시스템 파일들을 루트계정을 써도 못 건든다. Apple에서 커널에다가 아예 박아놔서 Root가 와도 못 건드는 것. 거기다가 이 파일들은 무결성 보호가 켜져 있을 경우 Apple 소프트웨어 업데이트와 연계되어 새로이 업데이트 된다. 루트가 와도 못 건드는 게 아니라, 루트리스는 SELinux 처럼 구동한다. 즉, 접근 권한이 없는 놈들은 무조건 차단. 여기엔 당연히 루트 계정도 포함된다. 그러니까 일반 사용자 입장에선 그냥 놔둬도 상관 없고, 아예 잘못된 실수를 할 수도 없는 상황이 도래했다. 거기다가 이런 보호를 받는 프로그램의 경우 코드 인젝션도 불가능하다. 그래서 이런 프로그램에 관련하던 몇몇 개발자들은 손 털고 나가기도 하였다.
간단하게, 무결성 보호는 다음과 같은 시스템 파일들을 루트계정을 써도 못 건든다. Apple에서 커널에다가 아예 박아놔서 Root가 와도 못 건드는 것. 거기다가 이 파일들은 무결성 보호가 켜져 있을 경우 Apple 소프트웨어 업데이트와 연계되어 새로이 업데이트 된다. 루트가 와도 못 건드는 게 아니라, 루트리스는 SELinux 처럼 구동한다. 즉, 접근 권한이 없는 놈들은 무조건 차단. 여기엔 당연히 루트 계정도 포함된다. 그러니까 일반 사용자 입장에선 그냥 놔둬도 상관 없고, 아예 잘못된 실수를 할 수도 없는 상황이 도래했다. 거기다가 이런 보호를 받는 프로그램의 경우 코드 인젝션도 불가능하다. 그래서 이런 프로그램에 관련하던 몇몇 개발자들은 손 털고 나가기도 하였다.
3. 적용 대상
다음은 시스템 무결성 보호가 적용되는 디렉터리 목록이다.
- /System
- /usr
- /sbin
- /bin
- OS X에 사전 설치된 앱 [3]
아래는 시스템 무결성 보호가 적용되지 않는 디렉터리 목록이다.
- /Application
- /Library
- /usr/local [5]
4. 해제 방법
해제 방법이 있긴 한데 웬만해서 건드리지 않는 것이 좋다. 굳이 끄고 싶다면 복구 파티션[6]에서 다음과 같은 명령으로 끌수 있다. 만약 다시 켜고 싶으면 뒤에 disable 대신 enable을 적으면 된다. 켤 때는 복구 파티션 상태가 아니여도 일반적인 터미널에서도 켤 수 있다.
csrutil disable
5. 여담
[1] 물론 sudo는 필수다[2] /Application에 설치된 기본 앱들(터미널, QuickTime Player 같은 앱)#[3] /Application에 설치된 기본 앱들(터미널, QuickTime Player 같은 앱)#[4] homebrew 등으로 사용자가 설치한 유틸리티 등이 저장되는 디렉토리[5] homebrew 등으로 사용자가 설치한 유틸리티 등이 저장되는 디렉토리[6] 부팅 시 Apple 로고가 보이기 전에 커맨드 키와 R 키를 동시에 누르고 있으면 진입할 수 있다.