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

スポンサーリンク

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

OS X 10.11 El Capitan

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

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

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

SIPの対象となるディレクトリ

スポンサーリンク

csrutilコマンド

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

SIP:RootlessをOFFにする

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

csrutil: failed to modify system integrity configuration. This tool needs to be executed from the Recovery OS.

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

macOSでシステム整合性保護機能をOFFにする方法

Successfully disabled System Integrity Protection. Plsase restart the machine for the changes to take effect.

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
        と入力するとで有効になるはずです。

    • 匿名 より:

      もう解決されたかもしれませんが、コマンドのパスが通っていないのかも。
      通常のログイン状態でターミナルから which csrutil と打ってフルパスを調べてそのフルパスをリカバリーモードで入力したらどうでしょうか。

    • 匿名 より:

      大変今更ではありますが,私も同様のケースに遭遇しました.
      OS X ユーティリティのバージョンが古いのが原因のようで,
      Command + Rではなく
      Option + Command + Rを押しながら起動し,
      最新バージョンのmacOSユーティリティを(インターネット経由でダウンロードして)起動することで解決しました.

  3. Apple7743 より:

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

  4. Apple7743 より:

    が→は

  5. […] 者権限(root)であっても”/System”, “/bin”, “/usr”, “/sbin”ディレクトリにファイルの作成が出来なくなっています Appleちゃんねる(http://applech2.com/archives/46435268.html) […]

  6. 匿名 より:

    無効にならず、Failedとでます。