Macのルートディレクトリに、シンボリックリンクを作成する方法

私が持っているMacは、個人の開発用にも使っています。

その際 Linuxディレクトリ構成と同様に、/home 配下に任意のディレクトリを作っているのですが、Mac OS だと、/home配下にディレクトリを作ろうとすると、以下のようなエラーが発生します。

% sudo mkdir /home/hoge
Password:
mkdir: /home/hoge: Operation not supported

昔の Mac OS は、上記コマンドで問題なかったのですが、いつの頃からか MacOSSIP(=System Integrity Protection) が加わって以降、上述のようなエラーが発生するようになったようです。

で、 SIP を無効にすることも方法ではあるのですが、せっかくの SIP の機能を無効にすることの副作用がよくわからない(っというか、調べるのもしんどい)ので、他に方法がないかと探していました。

しかも、私がしたいのは /homeディレクトリを作ってデータをそこに配置したいのではなく、シンボリックリンクで他の場所を指せるだけでも良かったりします。

その観点で、何か方法ないかと調べてみたら、以下の方法でルートディレクトリにシンボリックリンクを作成できることがわかりましたので、方法を以下に記録しておきます。

  1. /etc/synthetic.confを作成します。
% sudo touch /etc/synthetic.conf
  1. /etc/synthetic.conf の中身を以下のように記述し、保存しますます。
home    /Users/[UserName]/work/home
  • /Users/[UserName]/は、自分の環境のホームディレクトリを指してください。
  • home と パスの間は、 TAB で区切ってください。スペースだとうまくいきません。

  • 端末を再起動します。

  • ルートディレクトリの状況を確認すると、意図した通りにシンボリックリンクが貼られているのがわかります。

%  ls -l /
・・・省略
lrwxr-xr-x   1 root  wheel    49  3 13 16:18 home@ -> /Users/[UserName]/work/home
・・・省略