🍎

macOS で複数アカウント使用時の Homebrew 権限問題を 5 分で解決する方法

3
macOSLinux

macOS で複数アカウント使用時の Homebrew 権限問題を 5 分で解決する方法

ざっくり言うと

macOS で仕事用・プライベート用アカウントを分けていると Homebrew の権限問題でsudo chownを毎回実行する必要がある。この記事では5 分で永続的に解決する方法を解説します。


🤔 問題:毎回 sudo chown が必要で面倒

よくある状況

  • 個人の MacBook で仕事用・プライベート用アカウントを分けている
  • どちらのアカウントでも Homebrew(/opt/homebrew)を使いたい
  • アカウントを切り替える度に以下のコマンドが必要
sudo chown -R 現在のユーザー名 /opt/homebrew
brew update  # ようやく実行可能

なぜこの問題が起きるのか

Homebrew は/opt/homebrewディレクトリにインストールされますが、最初にインストールしたユーザーが所有者になります。他のアカウントからアクセスする際、書き込み権限がないためsudo chownでの所有者変更が必要となります。


💡 解決方法の比較

❌ 複雑すぎる方法

  • アカウント別に Homebrew 環境を分離
  • Brewfile による同期管理
  • Docker Dev Container の導入

個人使用には過剰で設定・メンテナンスが大変

✅ シンプルで効果的な方法(推奨)

グループ権限の設定で根本解決


🛠️ 具体的な解決手順

ステップ 1:現在の状況確認

# 現在のユーザー名を確認
whoami

# 全アカウントを確認
dscl . -list /Users | grep -v '^_'

# 現在のHomebrew権限を確認
ls -la /opt/homebrew | head -5

ステップ 2:グループ権限の設定

# 両アカウントをadminグループに追加
sudo dseditgroup -o edit -a 仕事用アカウント名 -t user admin
sudo dseditgroup -o edit -a プライベート用アカウント名 -t user admin

# Homebrewディレクトリをadminグループに設定
sudo chgrp -R admin /opt/homebrew

# adminグループに書き込み権限を付与
sudo chmod -R g+w /opt/homebrew

ステップ 3:設定確認

# 権限変更の確認
ls -la /opt/homebrew | head -5
# drwxrwxr-x になっていればOK(グループに書き込み権限あり)

# アカウントがadminグループに入ったか確認
dseditgroup -o checkmember -m プライベート用アカウント名 admin
# "yes" と表示されればOK

ステップ 4:動作テスト

# 両アカウントでテスト(sudoなしで実行)
brew --version
brew update

🎯 結果:権限問題が永続的に解決

設定後の状態

  • ✅ 両アカウントから sudo なしで Homebrew 使用可能
  • ✅ パッケージは共有される(無駄な重複インストールなし)
  • ✅ 一度設定すれば今後メンテナンス不要
  • ✅ セキュリティは適切に保たれる

実行可能なコマンド例

# どちらのアカウントでもsudo不要
brew install パッケージ名
brew update
brew upgrade
brew uninstall パッケージ名

🔍 他の解決策との比較

方法 設定時間 メンテナンス 複雑さ 推奨度
グループ権限設定 5 分 なし ⭐⭐⭐⭐⭐
アカウント別 Homebrew 30 分+ 継続的 ⭐⭐
Brewfile 同期管理 60 分+ 継続的 ⭐⭐
Dev Container 120 分+ 最高

⚠️ 注意事項

個人使用での安全性

この方法は個人使用の Macにおいて安全です:

  • 物理的にアクセス可能な攻撃者にとって、アカウント分離は意味がない
  • ホームディレクトリは依然として分離されている
  • 重要なのはファイアウォール・フルディスク暗号化・強固なパスワード

企業環境では非推奨

複数人が使用するマシンや企業環境では、セキュリティポリシーに従って別の方法を検討してください。


🚀 まとめ

macOS の複数アカウントで Homebrew 権限問題に悩んでいる方は、グループ権限設定による解決が最もシンプルで効果的です。

5 分の設定で永続的に解決し、今後は煩わしいsudo chownから解放されます。複雑な同期システムを構築する時間を、本来の開発作業に充てることができるでしょう。