MacOS の /System/ ディレクトリ配下のファイルを削除したかったので SIP を解除した

MacOS Mojave で検証。

Finder で、「システム」や「ユーザ」などのディレクトリが日本語で見えているのが気になった。

これらの表記は、当該ディレクトリ直下にある .localized というファイルを削除すると英語表記に戻せるのだが、このファイルは Finder 上には表示されない (Cmd + Shift + . で隠しファイルを表示してもダメ)。

仕方がないのでターミナルで以下のように実行して .localized ファイルを削除していった。

$ sudo rm /Applications/.localized
$ sudo rm /Applications/Utilities/.localized
$ sudo rm /Library/.localized
$ sudo rm /Users/.localized
$ sudo rm /Users/Shared/.localized

…のだが、以下の2つだけがどうしても削除できなかった。

$ sudo rm /System/.localized
$ sudo rm /System/Library/.localized

調べてみると、MacOS に搭載されている SIP (System Integrity Protection) という保護機能があると、/System/ ディレクトリ配下の操作ができないようだ。

SIP は次の手順で無効化できる。

  1. Apple アイコンメニューより「再起動」を選び、再起動が始まると同時に Cmd + R を押しっぱなしにする
  2. しばらく Cmd + R を押しっぱなしにして待つと、「macOS ユーティリティ」の画面が開く。いわゆるリカバリモードだ。この画面が表示されたら Cmd + R を離して良い
  3. この画面でメニューから「ユーティリティ」→「ターミナル」と選ぶ
  4. ターミナルに $ csrutil disable と入力すると、SIP が無効化できる
  5. 続けて $ reboot と入力し、再起動する

以上で SIP が無効化できたので、再起動後の通常画面でターミナルを開き、

$ sudo rm /System/.localized
$ sudo rm /System/Library/.localized

を実行すれば、ファイルが削除できる。