MacのセキュリティSIPを解除する

MacOS10.13 (High Sierra) から導入されているセキュリティ強化の仕組みSystem Integrity Protecton (SIP)を解除する方法です。
くれぐれも自己責任で…

参考:
OS X 10.11 El CapitanのSystem Integrity Protection(SIP) (rootless)についてちょっと詳しく

SIPが有効になっていると、root権限があっても
/Ststem/usr/binなどへの変更が差し止められてしまいます。
そのため、VirtualBoxのインストールができないなど、開発者としてはちょっと困った問題がおきます。

手順はおおまかに3ステップ。

  1. 確認
  2. リカバリーモードで起動
  3. ターミナルから解除コマンド実行

確認

SIPの適用状態は、ターミナルから確認できます。

$ csrutil status

有効になっている場合はこのようにenabledのメッセージが帰ってきます。

$ csrutil status
System Integrity Protection status: enabled.

そのまま設定を変更したいところですが、SIPの解除はリカバリモードでないと行えないので
いったんMacをシャットダウンします。

リカバリモードで起動

起動ボタンを押しながら⌘(Command) + r のキーも押すと
Macをリカバリモードで起動できます。
キーは、りんごとプログレスパーが現れる前に押下しておけば間違いないです。

余談ですが、私のMacBook Proは、リカバリモードで起動しようとすると、りんごのところが一瞬赤く点滅します。
これちょっと怖いよ。

リカバリモードで起動すると、その名の通り Macをリセットする物々しいメニューが表示されていますが
これらは触らず、画面上部のメニューにある「ユーティリティー」からターミナルを選択して起動させます。

ターミナルから解除コマンド実行

ターミナルを起動させると-bash-3.2 #と見慣れない接頭辞が表示されており怯みますが、いつもどおり使えます。

SIPの状態を確認してみると、enableになっているので

$ csrutil status
System Integrity Protection status: enabled.

解除するためにdisableを設定します。

$ csrutil disable

なんかメッセージが表示され、成功します。

一発目で私は「disabled」と間違えたので、もう一回やり直しました。
再起動には時間がかかりイライラするので、くれぐれもdisable(最後にdはいらない)とお間違いなきよう…

statusコマンドで状態を確認すると、enableがdisableに変わっています。

ここで、ターミナルを終了し、Macをシャットダウンして通常モードで再起動します。

成功

ターミナルを起動し、確認コマンドを実行してみると

$ csrutil status
System Integrity Protection status: disabled.

disabledにかわっていました。

無事、VirtualBoxのインストールも最後まで実行できました。

関連記事