孤立した環境にのみインストールし、残りのシステムには影響しない特定のCLIアプリケーションをテストしたいと思います。
答え1
いくつかのオプションがあります(完全でないリスト)。
VM(Qemu / KVM、Xen、VirtualBox、VMware ...) - 最も孤立しています(別のハードウェアシステムを除く)。これにさらに努力したくない場合は、別のオペレーティングシステムのインストールを実行します。現在のシステムは、基本(ホスト)システムイメージがサポートするディスクイメージを使用するように仮想マシンに指示するなど、非破壊的な方法で再利用できます。つまり、ゲストシステムによって決定されたすべての変更は「親」イメージが保存されますが、プライマリホストイメージ(通常はハードドライブのパーティション)は変更されていません。
システムレベルの仮想化一種のコンテナを使用してください。設計上、セキュリティが低く、システム(読み取り:ハードウェア)リソースをあまり集約的に使用します。通常、同じ実行カーネルをコンテナ化されたシステムと共有するため、コンテナ化されたシステムのセキュリティが低下します。カーネルの脆弱性を悪用する悪意のあるアプリケーションは、プライマリシステムから隔離されません。通常、いくつかのオプションがあります。 Linuxでは、典型的な例は次のとおりです。
chroot
/
- 新しいプロセスのルート()ディレクトリになる別のディレクトリです。これは、可能なすべてのライブラリと必要なバイナリ(および設定/データ/...)を含める必要があることを意味します。セキュリティの観点からはそうです。壊れたしかし、ほとんどすべてのシステムに存在します。firejail
- 「chroot on steroids」(私は「chroot as it should」と思うことを好む)。同様に動作しますが、追加の制限とサポート機能があります。つまり、既存のファイルシステム構造の特定の部分を元の環境構造と似ているが、異なるアクセス権を持つターゲット環境に簡単にマウントできます。最も重要なことは、firejail
コンテナで許可されているシステムコールを選択できることです。
「ユーザーレベル」仮想化 - 別のユーザーアカウントを作成し、そのユーザーとしてアプリケーションを実行します。セキュリティの側面は、システムアクセス制御にのみ依存します。設定が最も簡単です。