Linux の chroot コマンド: 隔離された空間でアプリケーションを実行およびテストする方法
Linux 愛好家であれば、システムにさまざまなアプリケーションやサービスをインストールまたはアンインストールすることが必要になることがよくあります。しかし、すべてのアプリケーションやサービスは、他のソフトウェア パッケージによって提供される共有オブジェクト ファイルに依存していることをご存知ですか?これらのオブジェクト ファイルが見つからないか破損している場合、アプリケーションやサービスが正しく動作しないか、起動できない可能性があります。したがって、隔離された空間でアプリケーションやサービスを実行およびテストする方法を知ることは、Linux システムの保守と最適化に役立つ非常に便利なスキルです。この記事では、chroot と呼ばれる強力なコマンド ライン ツールを紹介します。このツールを使用すると、Linux 上に独立した環境を作成し、その中でアプリケーションやサービスを実行およびテストできます。
Linux の chroot とは何ですか?
chroot を詳しく調べて、その利点、使用シナリオ、Linux システム上でのセットアップ方法、必要に応じて環境から抜け出す (chroot) 方法を理解しましょう。
chroot は、change-root であり、おそらく最も単純かつ最も古いコンテナ化ソフトウェアの 1 つであり、ユーザーがアプリケーションとサービスを安全に分離できるようにします。コンピューティング用語で言えば、分離とは、事前に定義されたリソースを備えた制限された空間にプログラムを閉じ込めることです。
Docker とその仕組みに精通している場合は、chroot をその大幅に簡略化したバージョンと考えることができます。 chroot は、プログラムのルート ディレクトリを変更し、アクセスと可視性を制限することにより、分離とセキュリティの追加層を提供します。
基本的には、別のディレクトリを作成し、プログラムのすべての依存関係を新しいディレクトリにコピーして、chroot コマンドを実行します。これにより、基盤となるファイル システムにアクセスできなくなっても、プログラムは通常どおり実行できます。
プログラムを chroot 環境としてセットアップすることは、実際のシステムのファイルを変更せずに、安全な場所でその信頼性をテストする良い方法です。さらに、chroot 環境では、侵害されたソフトウェア パッケージが機密システム ファイルにアクセスして変更することができないため、侵害されたソフトウェア パッケージによって引き起こされるセキュリティ リスクを軽減できます。
プログラムは、chroot ディレクトリ (「chrootjail」とも呼ばれる) にインポートされたファイルにのみアクセスして表示できます。これにより、プログラムとその子プロセスが基盤となるシステムの動作に干渉するのを防ぎます。
chroot 刑務所とは何ですか?
chroot ジェイルは、chroot プログラムが実行される隔離された環境です。 chrootjail という用語は、chroot 環境内のプロセスとその子プロセスが基礎となるファイル システムにアクセスしたり表示したりすることができず、chroot 用に予約されたリソースに制限されるという概念に由来しています。
chroot の概念を明確に理解したところで、実際に chroot ジェイルを作成し、その中でプログラムを実行する方法を学びましょう。
chroot ジェイルを作成してその中でプログラムを実行する方法
chroot ジェイル (chroot ジェイル) は、本質的には、プログラムが適切に実行されるために必要なすべてのリソース、ファイル、バイナリ、およびその他の依存関係が含まれるディレクトリです。
ただし、通常の Linux 環境とは異なり、chroot ジェイルの環境は厳しく制限されており、プログラムは外部または追加のファイルやシステム リソースにアクセスできません。
たとえば、chroot ジェイルで Bash シェルを実行するには、Bash バイナリとそのすべての依存関係を chroot ディレクトリにコピーする必要があります。
以下は、chrootjail を作成し、Bash シェルを生成する手順です:
1. プログラムを正常に実行するには、そのすべての依存関係を chroot ジェイルのディレクトリにコピーする必要があります。 where および ldd コマンドを使用して、バイナリ (この場合は Bash) とそのすべての依存関係の場所を見つけてみましょう。 リーリー

mkdir bin lib lib64 && cp -r /lib/ * ./lib && cp -r /lib64/* ./lib64/ && cp /bin/bash /bin/

3、最后,当程序和它的依赖项复制完成后,你可以使用 sudo 前缀以提升的权限运行 chroot 命令,在所选择的目录中生成 chroot 环境。默认情况下,它将生成一个Bash shell。下面是要输入的命令:
linuxmi@linuxmi:~$ sudo chroot www.linuxmi.com

这就是生成chroot监狱并在其中运行程序的所有步骤。
如何逃离chroot监狱
虽然 chroot 监狱对于测试不稳定的软件很有用,但在处理 SSH 连接时也很有用,因为将连接的用户设置为 chroot 环境是保护 SSH 服务器的众多方法之一。
另一方面,如果你是一名渗透测试人员,并且已登录到目标的 SSH 服务器,发现它是一个 chroot 环境,可能会感到沮丧,感觉走投无路。
然而,有很多方法可以逃离错误配置的 chroot 狱,有些方法需要 C 编程技巧,而其他方法可以使用工具自动化。一些简单的 chroot 逃逸方法包括:
- 嵌套的 chroot 调用
- 带有保存的文件描述符的嵌套 chroot 调用
- 根目录挂载方法
- procfs 逃逸
- ptrace 逃逸
请注意,要使用这些方法之一进行 chroot 逃逸,你需要在系统中具有升级的特权。通过访问 chw00t 的 GitHub 存储库,你可以了解更多关于这些逃逸方法的信息,那是一个 chroot 逃逸自动化工具。
现在你应该对 Linux 中的 chroot 了如指掌了
通过本文的介绍,我们了解了chroot是什么、它是如何工作的以及如何实现它,我们还学习了如何创建chroot监狱并在其中执行应用程序或服务,以及如何逃离chroot监狱。chroot是一个简单而强大的工具,可以让你在安全和隔离的空间中运行和测试应用程序或服务。请记住,chroot并不是一个完美的安全解决方案,它有一些局限性和缺陷,因此你应该谨慎地使用它,并结合其他的沙盒或虚拟化技术来提高你的系统的安全性和稳定性。
以上がLinux の chroot コマンド: 隔離された空間でアプリケーションを実行およびテストする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











Linuxシステムの5つの基本コンポーネントは次のとおりです。1。Kernel、2。Systemライブラリ、3。Systemユーティリティ、4。グラフィカルユーザーインターフェイス、5。アプリケーション。カーネルはハードウェアリソースを管理し、システムライブラリは事前コンパイルされた機能を提供し、システムユーティリティはシステム管理に使用され、GUIは視覚的な相互作用を提供し、アプリケーションはこれらのコンポーネントを使用して機能を実装します。

gitリポジトリアドレスを表示するには、次の手順を実行します。1。コマンドラインを開き、リポジトリディレクトリに移動します。 2。「git remote -v」コマンドを実行します。 3.出力と対応するアドレスでリポジトリ名を表示します。

NotePadはJavaコードを直接実行することはできませんが、他のツールを使用することで実現できます。コマンドラインコンパイラ(Javac)を使用してByteCodeファイル(filename.class)を生成します。 Javaインタープリター(Java)を使用して、バイトコードを解釈し、コードを実行し、結果を出力します。

Sublimeでコードを実行するには6つの方法があります。ホットキー、メニュー、ビルドシステム、コマンドライン、デフォルトビルドシステムの設定、カスタムビルドコマンド、プロジェクト/ファイルを右クリックして個々のファイル/プロジェクトを実行します。ビルドシステムの可用性は、崇高なテキストのインストールに依存します。

Linuxの主な用途には、1。Serverオペレーティングシステム、2。EmbeddedSystem、3。Desktopオペレーティングシステム、4。開発およびテスト環境。 Linuxはこれらの分野で優れており、安定性、セキュリティ、効率的な開発ツールを提供します。

Laravelをインストールするには、これらの手順を順番に進みます。コンポーザー(MacOS/LinuxとWindows用)インストールLaravelインストーラーをインストールします。

GITソフトウェアのインストールには、次の手順が含まれています。インストールパッケージをダウンロードしてインストールパッケージを実行して、インストール構成gitインストールgitバッシュ(Windowsのみ)を確認します

Visual Studio Code(VSCODE)は、Microsoftが開発したクロスプラットフォーム、オープンソース、および無料のコードエディターです。軽量、スケーラビリティ、および幅広いプログラミング言語のサポートで知られています。 VSCODEをインストールするには、公式Webサイトにアクセスして、インストーラーをダウンロードして実行してください。 VSCODEを使用する場合、新しいプロジェクトを作成し、コードを編集し、コードをデバッグし、プロジェクトをナビゲートし、VSCODEを展開し、設定を管理できます。 VSCODEは、Windows、MacOS、Linuxで利用でき、複数のプログラミング言語をサポートし、マーケットプレイスを通じてさまざまな拡張機能を提供します。その利点には、軽量、スケーラビリティ、広範な言語サポート、豊富な機能とバージョンが含まれます
