パッケージ管理にルートが必要な理由

パッケージ管理にルートが必要な理由

pacmanやaptなどのパッケージマネージャでは、ルートチェックはソースコードにハードコードされたguidチェックを使用します。なぜこれですか?

権限のないユーザーは、ソースから擬似ルートディレクトリ(ユーザーディレクトリ内)にプログラム(クロムブラウザなど)をコンパイルして実行できます。ユーザーはプリコンパイルされたバイナリをダウンロードして実行することもできます。ユーザーが昇格せずにパッケージマネージャを使用して、擬似ルートディレクトリ(ユーザーホームディレクトリ内)に直接ソフトウェアをインストールすることを許可しないでください。

IMOパッケージマネージャは、ルート所有ディレクトリにファイルを書き込むときにsudoのみが必要です。たとえば、/bin または /etc です。

一部のセキュリティ問題を見落とした場合は、お知らせください。

注:一部の研究では、ユーザースペース用の代替パッケージマネージャーが存在することがわかりました。 root権限なしでパッケージを管理する https://askubuntu.com/questions/339 ルート以外のパッケージマネージャ

私の質問はまだ残っています。なぜデフォルトのパッケージマネージャはこれらのユースケースをサポートしないのですか?よりエレガントな実装があったかもしれません。

答え1

パッケージ管理者はすべてのユーザーに影響を与えるため、rootとして実行する必要があります。

IMOパッケージマネージャは、ルート所有ディレクトリにファイルを書き込むときにsudoのみが必要です。たとえば、/bin または /etc です。

また、インストールされたパッケージのデータベースを管理するには、ルートアクセスが必要です。

ユーザーのホームディレクトリにソフトウェアをインストールするパッケージマネージャは、rootとして実行する必要はありません。

なぜほとんどのパッケージマネージャはホームディレクトリにプログラムをインストールすることを許可しないのですか?依存関係の管理が難しいからです。私の経験では、ほとんどの人はこれを過小評価しています。ソフトウェアがシステム全体にインストールされている場合は、考慮すべき1つの依存関係があります。システム全体のソフトウェア(少なくともパッケージマネージャを実行するために必要なライブラリ!)とユーザー専用のソフトウェアを混在させると、依存関係を管理するのが難しくなります。

答え2

パッケージマネージャは、システムを修理および中断する強力なツールです。

すべてのタスクの権限を確認するときは、root権限を要求する方が簡単です。

関連情報