OS X 10.11 El Capitanのシステム保護機能「Rootless」を無効にするcsrutilコマンドの使い方。

スポンサーリンク

 OS X 10.11 El Capitanのシステム整合性保護機能「Rootless」を無効にする方法です。詳細は以下から。

OS-X-10-11-Rootless-Hero

 OS X 10.11 El CapitanではOS Xの新たなセキュリティ整合性保護機能(SIP: System Integrity Protection)通称”Rootless”が導入されており、例え管理者権限(root)であっても

  • /System
  • /bin
  • /usr
  • /sbin

ディレクトリにファイルの作成が出来なくなっていますが、Appleは開発者向けにこのRootlessを操作するコマンド”csrutil”を提供しています。

csrutilコマンド

 csrutilコマンドはEl Capitanから新たに加わったコマンドラインツールで、clear, disable, enable, status,netbootといったオプションが用意されており、SIPのチェックや有効/無効を行うことが出来ます。

Modify the System Integrity Protection configuration. All configuration changes apply to the entire machine.
Available commands:
clear
Clear the existing configuration. Only available in Recovery OS.
disable
Disable the protection on the machine. Only available in Recovery OS.
enable
Enable the protection on the machine. Only available in Recovery OS.
status
Display the current configuration.
netboot
add <address>
Insert a new IPv4 address in the list of allowed NetBoot sources.
list
Print the list of allowed NetBoot sources.
remove <address>
Remove an IPv4 address from the list of allowed NetBoot sources.

SIP:RootlessをOFFにする

 まず、使用しているMacがどのようなセキュリティ状態になるかを調べるためにターミナルで”csrutil status”と入力してみてください。現在の状態(ステータス)が表示され、enabledならSIPがON、diabledならSIPがOFFになっている状態です。SIPをOFFにするためにはdiableオプションを付けるだけでいいのですが、”csrutil disable”と入力すると以下の様なエラーが返ってくると思います、

 これはcsrutilのmanにもあるようにcsrutilコマンドのclear, disable, enabledオプションはリカバリーモードしか使用できないためで、このオプションを利用するために一度Macの電源をOFFにし、[Command + R]を押しながらMacを起動、その後メニューバーの[ウィンドウ] > [ターミナル] を選択し、”csrutil disable”と入力すればSIPをOFFにすることが可能です。

 Rootless OFF後は”csrutil status”の表示が以下のようになり、Apple InternalやKext Signing, Filesystem Protections, Debugging Restrictions, Dtrace Restrictions, NVRAM Protectionsなど全てがdisableになり、/binなどにファイルを作成することが可能になります。

おまけ

 OS X 10.11 El Capitan Beta版であったSIPをON/OFFにするGUIツールは無くなってしまいましたが、kextをインストールしたり、/bin, /usrなどを利用するユーザーでしたらcsrutilコマンドの利用も問題ないと思います。

ですが、SIPをOFFにすることでEl Capitanが脆弱になるため多くの開発者がこの機能をONにした状態でも問題ないアプリを提供[1, 2, 3]しようとしているので、むやみにOFFにしないことをお勧めします。

関連リンク

コメント

  1. Apple7743 より:

    これでXtraFinderって使えます?

  2. Apple7743 より:

    通常のログイン状態でターミナルを起動し、csrutilコマンドを打つと現在の状態がちゃんと出るのですが、リカバリーモードでターミナルを起動してコマンドを打つと、command not foundが返って来てしまいます。なぜでしょうか。。

    • 匿名 より:

      私も同じ現象に陥っています。その後解決致しましたか?
      解決策をお知らせ頂けると嬉しいです。

      • 管理人 より:

        rootlessを有効にする方法は “csrutil disable”と逆です。
        具体的には
        1.[Command + R]を押しながらMacを起動
        2.メニューバーの[ウィンドウ] > [ターミナル] を選択
        3.csrutil enable
        と入力するとで有効になるはずです。

  3. Apple7743 より:

    「Rootless」無効を戻す方法がどうすれば良いでしょうか

  4. Apple7743 より:

    が→は