sudo brew install git
brewでプログラム(この場合はgit)をインストールしようとしたら、エラーが表示されました。
Error: Running Homebrew as root is extremely dangerous and no longer supported.
As Homebrew does not drop privileges on installation you would be giving all
build scripts full access to your system.
このエラーメッセージは、root(管理者)権限でHomebrewを実行しようとしたときに表示されるものです。
つまり、Homebrewは、sudoは必要なく、通常のユーザーアカウントでを実行すればよいわけです。
brew install git
1. Homebrewのルートユーザー実行エラー
エラーメッセージには、 「Homebrewをrootとして実行することは非常に危険であり、現在はサポートされていません」と書かれています。
通常は、プログラムのインストールと言えば、管理者権限が必要です。
しかし、Homebrewは、通常のユーザー権限で実行することを前提に設計されたパッケージマネージャーです。
Homebrewは多数のスクリプトを実行するため、root権限で実行するとセキュリティ上の重大なリスクがあるからです。
そのため、明示的にroot実行が廃止されています。
- セキュリティリスク:
Homebrewは多数のスクリプトを実行しますが、これらをroot権限で実行すると、悪意のあるスクリプトがシステム全体に影響を与える可能性があります。 - 権限分離の原則:
セキュリティの基本原則として、プログラムは必要最小限の権限だけで実行すべきです。
Homebrewの操作のほとんどはroot権限を必要としません。 - 予期しない動作:
Homebrewは通常ユーザーでの実行を前提に設計されているため、root権限で実行すると予期しない問題が発生する可能性があります。
2. aptとは違う
ちなみに、Linux環境で一般的な apt(apt / apt-get / apt-cache など)は sudo が必要 です。
sudo apt install git
理由は、apt はシステム全体に影響するディレクトリ を直接操作するからです。
- /usr/bin
- /usr/lib
- /etc
- /var/lib/apt
そのため、設計上 管理者権限での実行が前提 になっています。
Homebrewとの本質的な違いは、aptは、システムパッケージマネージャでOSの一部として動作していること。
それに対してHomebrewは、ユーザーランドパッケージマネージャで、ユーザー権限下のディレクトリにのみ書き込む仕組みなのです。
そのため、「apt は sudo、Homebrew は sudo 不要」になっています。