【Mac】rootlessとcsrutil
rootless
MacではOS X 10.11(El Capitan)より、/userや/binなどのディレクトリへの書き込みがroot権限でも不可能となりました。
$ sudo mkdir /usr/hoge Password: mkdir: /usr/hoge: Operation not permitted
この措置はrootlessと呼ばれるシステム整合性保護で、root権限をダッシュされたときのリスクを減らします。rootlessは下記のディレクトリを保護します。
- /システム
- /usr
- /bin
- /sbin
加えて、OS X にあらかじめインストールされているアプリも変更することができなくなります。
しかしながら、これらのディレクトリへの書き込みを実行する一部のアプリケーションインストールなどが正常に動作しなくなる可能性もあります。
csrutil
rootlessを無効にするには、csrutilを使います。
$ csrutil status System Integrity Protection status: enabled.
csrutil status
でrootlessが有効かどうかをチェックすることができます。
csrtoolによるrootless設定の変更は、起動中のOSシェル上では利用できず、リカバリーモードでしか動作しません。
したがってリカバリーモードに移行する必要があります。リカバリーモードに移行するには、Mac起動中にCtrl+R
を長押しします。
すると上記のようなウィンドウが表示されるので、左上の「ユーティリティ」->「ターミナル」を選択します。
rootless無効化/有効化のコマンドは下記のとおりです。 (変更に関する責任は負いかねます)
# 無効化 $ csrutil disable # 有効化 $ csrutil enable
rootlessは一旦無効化しても、直ぐに有効化することを推奨します。