Works by

Works by

プログラミング等IT技術関連でメモする

【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を長押しします。

f:id:rennnosukesann:20180801172405p:plain

すると上記のようなウィンドウが表示されるので、左上の「ユーティリティ」->「ターミナル」を選択します。

rootless無効化/有効化のコマンドは下記のとおりです。 (変更に関する責任は負いかねます)

# 無効化
$ csrutil disable

# 有効化
$ csrutil enable

rootlessは一旦無効化しても、直ぐに有効化することを推奨します。

参考

support.apple.com