すでにHomebrewをインストールして使っていたMacに新ユーザーを追加して、そちらでもHomebrewを使おうとしたら、パーミッションエラーが起こった。
せっかくなので、対処法とともに残します。
環境
- MacBook Pro (13-inch, 2020)
- macOS Catalina 10.15.7
- 新ユーザーは管理者として作成している
経緯
brew install
でパーミッションエラー発生
brew install
でパッケージをインストールしようとしたところ、パーミッションエラーが出た。
エラーメッセージでは sudo chown -R $(whoami) /usr/local/Cellar
を実行するようにアナウンスされる。
が、これだとオーナーを新ユーザーに変更するだけなので、現行ユーザー側でbrew install
などを実行しようとすると、きっと同じエラーが発生する。
現状のパーミッション
/user/local
ディレクトリと、その配下の各ディレクトリの所有者は、下記の通り。
ディレクトリ | パーミッション | ユーザー | グループ |
---|---|---|---|
/user/local | drwxr-xr-x | root | wheel |
/user/local/配下 | drwxr-xr-x | 現行ユーザー | admin |
/user/local/Cellar | drwxr-xr-x | 現行ユーザー | admin |
/user/local/Homebrew | drwxr-xr-x | 現行ユーザー | admin |
対応
新ユーザーは管理者として作成しているので、adminグループに属している。しかし、/user/local/
配下の各ディレクトリにはadminグループへの書き込み権限が無かった。
そこで、adminグループへの書き込み権限を与える。
$ sudo chmod -R g+w /user/local/*
これで、ひとまずbrew install
は完了できた。brew doctor
の内容も、概ね問題なさそう。
/usr/local
自体への権限付与はできなかった
「Homebrew 複数ユーザー」などで検索すると、 /usr/local
自体のグループと書き込み権限を変更しようとする記事がいくつかあった。
$ sudo chgrp admin /usr/local
$ chmod -R g+w /usr/local
しかし、実行しようとするとエラーになってしまった。
~ $ sudo chgrp admin /usr/local
chgrp: /usr/local: Operation not permitted
Homebrewの再インストールでも解決できるようだが、すでにインストール済みのパッケージの再インストールも必要になるので、あまりやりたくなかった。
なので、この方法は見送った。
残る問題
都度、権限のメンテナンスが必要そう
どちらかのユーザーで新しいパッケージをインストールすると、/user/local/Cellar/パッケージ
, /user/local/Homebrew/配下
の権限がまた変わってしまうので、なにか書き込み必要なときには、再度上記コマンドの実行が必要そう。
そもそもホームディレクトリにインストールしたい
本当は、各ユーザーのホームディレクトリにHomebrewをインストールしたい。以下の記事あたりが参考になりそう。