최근 수정 시각 : 2024-10-09 14:20:03

시스템 무결성 보호

파일:external/upload.wikimedia.org/Rootless-test.png
삭제하려고 하는 것은 macOS의 인텔 그래픽 드라이버이다.
1. 개요2. 상세3. 적용 대상4. 해제 방법5. 여담

1. 개요

System integrity protection / Rootless

Apple 고객지원 홈페이지의 'Mac의 시스템 무결성 보호'에 대한 설명 페이지

OS X El Capitan iOS 9에 적용된 기술이다.

2. 상세

일반적인 UNIX 운영체제의 경우 rm -rf / 명령어를 root 권한으로 실행하면 시스템의 모든 파일과 디렉터리가 삭제된다. UNIX 기반인 macOS 역시 같은 행동으로 시스템 전체를 파괴할 수 있었으나, OS X El Capitan부터 root를 엿먹이는 루트리스(rootless), 또는 시스템 무결성 보호라는 시스템이 도입되었다.

간단하게, 무결성 보호가 켜져 있으면 다음과 같은 시스템 파일들을 root 권한으로도 변경할 수 없다. 거기다가 이 파일들은 무결성 보호가 켜져 있을 경우 Apple 소프트웨어 업데이트와 연계되어 새로이 업데이트된다. 루트리스는 SELinux처럼 구동되는데, 다시 말해 접근 권한이 없는 놈들은 root고 나발이고 무조건 차단된다. 그러니까 일반 사용자 입장에선 그냥 놔둬도 상관 없고, 아예 잘못된 실수를 할 수도 없는 상황이 도래했다. 거기다가 이런 보호를 받는 프로그램의 경우 코드 인젝션도 불가능하다. 그래서 이런 프로그램에 관련된 몇몇 개발자들은 손 털고 나가기도 하였다.

3. 적용 대상

다음은 시스템 무결성 보호가 적용되는 디렉터리의 목록이다.
  • /System
  • /usr
  • /sbin
  • /bin
  • macOS에 사전 설치된 앱[1]

아래는 시스템 무결성 보호가 적용되지 않는 디렉터리 목록이다.
  • /Application
  • /Library
  • /usr/local[2]

4. 해제 방법

해제 방법이 있긴 한데 웬만하면 건드리지 않는 것이 좋다. 굳이 끄고 싶다면 복구 파티션에서 다음과 같은 명령으로 끌 수 있다. 만약 다시 켜고 싶으면 뒤에 disable 대신 enable을 적으면 된다. 켤 때는 복구 파티션 상태가 아닌 데스크탑의 터미널에서도 켤 수 있다.
csrutil disable

복구 파티션에 진입하는 방법은 다음과 같다.
  • Intel Mac: 시동 시 Apple 로고가 보이기 전에 command + R 키를 동시에 누르고 있으면 진입할 수 있다.
  • Apple Silicon Mac: 전원 버튼을 누르되 시동 디스크를 선택하는 화면이 나올 때까지는 계속 눌러야 하며 그 전에 떼서는 안 된다. 디스크를 선택하는 화면이 나오면, option 키를 누른 후 들어간다.

5. 여담

iOS 9 출시 전 루트리스가 도입되면 탈옥이 불가능해질 것이라는 예상이 들끓었으나, 이미 Pangu 팀의 iOS 9.0 ~ 9.0.2 탈옥툴이 나온 상태로 iOS 9도 탈옥이 가능하다는 것이 증명되었다.

macOS High Sierra 10.13에 와서는 이 기능이 더욱 확장되었다고 하나, 실제 머신에서 sudo rm -rf /를 실행해본 결과 남는 것 없이 전부 날아갔다고 한다.

macOS Big Sur의 경우 아예 복구 모드 터미널에서도 해제가 안 된다.

'rootless'라는 단어는 안드로이드에서 글자 그대로 루팅 없이 사용 가능한 유틸리티를 말할 때도 쓰인다. 이 문서에서 다루는 대상과는 관계가 없으니 헷갈리지 말자.


[1] /Application에 설치된 기본 앱들(터미널, QuickTime Player 같은 앱) # [2] homebrew 등으로 사용자가 설치한 유틸리티 등이 저장되는 디렉터리

분류