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衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

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

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

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

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

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

ホットトピック









Centosとubuntuの重要な違いは次のとおりです。起源(CentosはRed Hat、for Enterprises、UbuntuはDebianに由来します。個人用のDebianに由来します)、パッケージ管理(CentosはYumを使用し、安定性に焦点を当てます。チュートリアルとドキュメント)、使用(Centosはサーバーに偏っています。Ubuntuはサーバーやデスクトップに適しています)、その他の違いにはインストールのシンプルさが含まれます(Centos is Thin)

Centosのインストール手順:ISO画像をダウンロードし、起動可能なメディアを燃やします。起動してインストールソースを選択します。言語とキーボードのレイアウトを選択します。ネットワークを構成します。ハードディスクをパーティション化します。システムクロックを設定します。ルートユーザーを作成します。ソフトウェアパッケージを選択します。インストールを開始します。インストールが完了した後、ハードディスクから再起動して起動します。

Centosは廃止されました、代替品には次のものが含まれます。1。RockyLinux(最高の互換性)。 2。アルマリン(Centosと互換性); 3。Ubuntuサーバー(設定が必要); 4。RedHat Enterprise Linux(コマーシャルバージョン、有料ライセンス); 5。OracleLinux(CentosとRhelと互換性があります)。移行する場合、考慮事項は次のとおりです。互換性、可用性、サポート、コスト、およびコミュニティサポート。

Dockerデスクトップの使用方法は? Dockerデスクトップは、ローカルマシンでDockerコンテナを実行するためのツールです。使用する手順には次のものがあります。1。Dockerデスクトップをインストールします。 2。Dockerデスクトップを開始します。 3。Docker Imageを作成します(DockerFileを使用); 4. Docker画像をビルド(Docker Buildを使用); 5。Dockerコンテナを実行します(Docker Runを使用)。

DockerはLinuxカーネル機能を使用して、効率的で孤立したアプリケーションランニング環境を提供します。その作業原則は次のとおりです。1。ミラーは、アプリケーションを実行するために必要なすべてを含む読み取り専用テンプレートとして使用されます。 2。ユニオンファイルシステム(UnionFS)は、違いを保存するだけで、スペースを節約し、高速化する複数のファイルシステムをスタックします。 3.デーモンはミラーとコンテナを管理し、クライアントはそれらをインタラクションに使用します。 4。名前空間とcgroupsは、コンテナの分離とリソースの制限を実装します。 5.複数のネットワークモードは、コンテナの相互接続をサポートします。これらのコア概念を理解することによってのみ、Dockerをよりよく利用できます。

障害のあるDocker画像ビルドのトラブルシューティング手順:DockerFileの構文と依存関係バージョンを確認します。ビルドコンテキストに必要なソースコードと依存関係が含まれているかどうかを確認します。エラーの詳細については、ビルドログを表示します。 -targetオプションを使用して、階層フェーズを構築して障害点を識別します。 Dockerエンジンの最新バージョンを使用してください。 -t [image-name]:デバッグモードで画像を作成して、問題をデバッグします。ディスクスペースを確認し、十分であることを確認してください。 Selinuxを無効にして、ビルドプロセスへの干渉を防ぎます。コミュニティプラットフォームに助けを求め、DockerFilesを提供し、より具体的な提案のためにログの説明を作成します。

CentOSが停止した後、ユーザーは次の手段を採用して対処できます。Almalinux、Rocky Linux、Centosストリームなどの互換性のある分布を選択します。商業分布に移行する:Red Hat Enterprise Linux、Oracle Linuxなど。 Centos 9ストリームへのアップグレード:ローリングディストリビューション、最新のテクノロジーを提供します。 Ubuntu、Debianなど、他のLinuxディストリビューションを選択します。コンテナ、仮想マシン、クラウドプラットフォームなどの他のオプションを評価します。

VSコードシステムの要件:オペレーティングシステム:オペレーティングシステム:Windows 10以降、MACOS 10.12以上、Linux Distributionプロセッサ:最小1.6 GHz、推奨2.0 GHz以上のメモリ:最小512 MB、推奨4 GB以上のストレージスペース:最低250 MB以上:その他の要件を推奨:安定ネットワーク接続、XORG/WAYLAND(Linux)
