9
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Homebrewを複数ユーザーで使おうとすると、パーミッションエラー

Posted at

すでに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をインストールしたい。以下の記事あたりが参考になりそう。

9
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?