目次
Linux の chroot とは何ですか? " >Linux の chroot とは何ですか?
chroot 刑務所とは何ですか? " >chroot 刑務所とは何ですか?
chroot ジェイルを作成してその中でプログラムを実行する方法" >chroot ジェイルを作成してその中でプログラムを実行する方法
如何逃离chroot监狱" >如何逃离chroot监狱
现在你应该对 Linux 中的 chroot 了如指掌了" >现在你应该对 Linux 中的 chroot 了如指掌了
ホームページ システムチュートリアル Linux Linux の chroot コマンド: 隔離された空間でアプリケーションを実行およびテストする方法

Linux の chroot コマンド: 隔離された空間でアプリケーションを実行およびテストする方法

Feb 12, 2024 pm 12:12 PM
linux Linuxチュートリアル Linuxシステム Linuxコマンド シェルスクリプト 埋め込みLinux Linux を始める Linux学習

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) とそのすべての依存関係の場所を見つけてみましょう。 リーリー

Linux の chroot コマンド: 隔離された空間でアプリケーションを実行およびテストする方法2. バイナリとその依存関係の場所がわかったので、それらを chrootjail に変換するディレクトリにコピーします。 mkdir コマンドを使用して必要なディレクトリを作成し、cp コマンドを使用してすべてのファイルを対応するディレクトリにコピーします。
mkdir bin lib lib64 && cp -r /lib/ * ./lib && cp -r /lib64/* ./lib64/ && cp /bin/bash /bin/
ログイン後にコピー
Linux の chroot コマンド: 隔離された空間でアプリケーションを実行およびテストする方法

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

linuxmi@linuxmi:~$ sudo chroot www.linuxmi.com
ログイン後にコピー
Linux の chroot コマンド: 隔離された空間でアプリケーションを実行およびテストする方法

这就是生成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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

Linuxアーキテクチャ:5つの基本コンポーネントを発表します Linuxアーキテクチャ:5つの基本コンポーネントを発表します Apr 20, 2025 am 12:04 AM

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

GITの倉庫アドレスを確認する方法 GITの倉庫アドレスを確認する方法 Apr 17, 2025 pm 01:54 PM

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

Apr 16, 2025 pm 07:39 PM

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

コードを書いた後に崇高に実行する方法 コードを書いた後に崇高に実行する方法 Apr 16, 2025 am 08:51 AM

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

Linuxの主な目的は何ですか? Linuxの主な目的は何ですか? Apr 16, 2025 am 12:19 AM

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

Laravelインストールコード Laravelインストールコード Apr 18, 2025 pm 12:30 PM

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

GITソフトウェアのインストール GITソフトウェアのインストール Apr 17, 2025 am 11:57 AM

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

vscodeの使用方法 vscodeの使用方法 Apr 15, 2025 pm 11:21 PM

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

See all articles