pacmanやaptなどのパッケージマネージャでは、ルートチェックはソースコードにハードコードされたguidチェックを使用します。なぜこれですか?
権限のないユーザーは、ソースから擬似ルートディレクトリ(ユーザーディレクトリ内)にプログラム(クロムブラウザなど)をコンパイルして実行できます。ユーザーはプリコンパイルされたバイナリをダウンロードして実行することもできます。ユーザーが昇格せずにパッケージマネージャを使用して、擬似ルートディレクトリ(ユーザーホームディレクトリ内)に直接ソフトウェアをインストールすることを許可しないでください。
IMOパッケージマネージャは、ルート所有ディレクトリにファイルを書き込むときにsudoのみが必要です。たとえば、/bin または /etc です。
一部のセキュリティ問題を見落とした場合は、お知らせください。
注:一部の研究では、ユーザースペース用の代替パッケージマネージャーが存在することがわかりました。 root権限なしでパッケージを管理する https://askubuntu.com/questions/339 ルート以外のパッケージマネージャ
私の質問はまだ残っています。なぜデフォルトのパッケージマネージャはこれらのユースケースをサポートしないのですか?よりエレガントな実装があったかもしれません。
答え1
パッケージ管理者はすべてのユーザーに影響を与えるため、rootとして実行する必要があります。
IMOパッケージマネージャは、ルート所有ディレクトリにファイルを書き込むときにsudoのみが必要です。たとえば、/bin または /etc です。
また、インストールされたパッケージのデータベースを管理するには、ルートアクセスが必要です。
ユーザーのホームディレクトリにソフトウェアをインストールするパッケージマネージャは、rootとして実行する必要はありません。
なぜほとんどのパッケージマネージャはホームディレクトリにプログラムをインストールすることを許可しないのですか?依存関係の管理が難しいからです。私の経験では、ほとんどの人はこれを過小評価しています。ソフトウェアがシステム全体にインストールされている場合は、考慮すべき1つの依存関係があります。システム全体のソフトウェア(少なくともパッケージマネージャを実行するために必要なライブラリ!)とユーザー専用のソフトウェアを混在させると、依存関係を管理するのが難しくなります。
答え2
パッケージマネージャは、システムを修理および中断する強力なツールです。
すべてのタスクの権限を確認するときは、root権限を要求する方が簡単です。