搜尋
首頁系統教程LinuxLinux上的chroot命令:如何在隔離的空間中運行和測試應用程式

Linux上的chroot命令:如何在隔離的空間中運行和測試應用程式

Feb 12, 2024 pm 12:12 PM
linuxlinux教程linux系統linux指令shell腳本嵌入式linuxlinux入門linux學習

如果你是Linux愛好者,你可能經常需要在你的系統上安裝或卸載各種應用程式或服務。但是,你是否知道每個應用​​程式或服務都依賴一些共享的物件文件,這些文件是其他軟體包提供的?如果這些物件檔案缺失或損壞,你的應用程式或服務可能無法正常運作,甚至無法啟動。因此,了解如何在隔離的空間中運行和測試應用程式或服務是一個非常有用的技能,可以幫助你維護和優化你的Linux系統。本文將介紹一個強大的命令列工具,叫做chroot,它可以讓你在Linux上創建一個獨立的環境,並在其中運行和測試應用程式或服務。

什麼是 Linux 中的 chroot?

#讓我們詳細探討chroot,了解其好處、使用場景,如何在Linux系統上設定它,以及如果需要的話,如何跳出(chroot)環境。

chroot 就是 change-root,可以說是最簡單和古老的容器化軟體之一,它允許使用者安全地將應用程式和服務隔離。在計算術語中,隔離是將程式限制在一個受限空間內,具有預先定義的資源。

如果您熟悉 Docker 及其工作原理,您可以將 chroot 視為其大幅簡化的版本。 chroot 透過更改程式的根目錄,限制存取和可見性,從而提供了額外的隔離和安全層級。

基本上,您建立一個單獨的目錄,將所有程式的依賴項複製到新目錄中,然後執行chroot命令。這使得程式能夠正常運行,同時無法存取基本檔案系統。

將程式設定為 chroot 環境是一種在安全空間中測試其可靠性的好方法,而不會改變實際系統的檔案。此外,在 chroot 環境中,您還可以減少受損軟體包引起的安全風險,因為在 chroot 環境中,受損的軟體包將無法存取和修改敏感系統檔案。

程式只能存取和檢視匯入到 chroot 目錄中的文件,也被稱為」chroot監獄」。這樣可以防止程式及其子進程幹擾基本系統的運作。

什麼是chroot監獄?

#一個 chroot 監獄是一個隔離的環境,其中運行和執行chroot程式。 chroot 監獄這個術語源自於這樣一個概念:chroot 環境內的進程及其子進程無法存取或查看基本檔案系統,並且受限於chroot所預定的資源。

現在你對 chroot 的概念有了清楚的了解,讓我們動手實踐,學習如何創建一個 chroot 監獄並在其中執行程式。

如何建立 chroot 監獄並在其中執行程式

chroot 監獄(chroot jail)實質上是目錄,其中包含了程式正常運作所需的所有資源、檔案、二進位檔案和其他依賴項。

然而,與常規的 Linux 環境不同,chroot監獄的環境受到嚴格限制,程式無法存取外部或額外的檔案和系統資源。

例如,要在 chroot 監獄中執行 Bash shell,你需要將 Bash 二進位檔案及其所有相依性複製到chroot目錄中。

以下是建立 chroot 監獄並產生 Bash shell 的步驟:

1、要成功執行一個程序,你需要將它的所有依賴項複製到 chroot 監獄的目錄中。讓我們使用 which 和 ldd 指令來找到二進位檔案(在本例中為Bash)及其所有相依性的位置:

┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]
└─$ which bash
/usr/bin/bash
                                                                           
┌──(linuxmi㉿linuxmi)-[~/www.linuxmi.com]
└─$ ldd /usr/bin/bash
Linux上的chroot命令:如何在隔離的空間中運行和測試應用程式

2、現在你知道了二進位檔案和其依賴項的位置,將它們複製到你想要轉換為 chroot 監獄的目錄中。使用 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中文網其他相關文章!

陳述
本文轉載於:良许Linux教程网。如有侵權,請聯絡admin@php.cn刪除
Innotop- MySQL的基於CLI的頂級監視器工具Innotop- MySQL的基於CLI的頂級監視器工具May 08, 2025 am 10:48 AM

Innotop:強大的MySQL監控命令行工具 Innotop是一款優秀的命令行程序,類似於top命令,用於監控在InnoDB引擎下運行的本地和遠程MySQL服務器。它提供了一套全面的功能和選項,幫助數據庫管理員(DBA)跟踪MySQL性能的各個方面,排除問題並優化服務器配置。 Innotop允許您監控關鍵的MySQL指標,例如: MySQL複製狀態 用戶統計信息 查詢列表 InnoDB緩衝池 InnoDB I/O統計信息 打開的表 鎖定的表 等等… 該工具定期刷新其數據,提供對服務器狀態的

如何使用RESTIC工具備份Linux數據如何使用RESTIC工具備份Linux數據May 08, 2025 am 10:34 AM

RESTIC:您的綜合保護Linux備份指南 數據丟失會削弱Linux系統。 意外刪除,硬件故障或系統損壞需要強大的備份策略。 Restic是領先的解決方案,提供速度,Securi

2024年最受歡迎的Linux發行2024年最受歡迎的Linux發行May 08, 2025 am 10:15 AM

2025年最受歡迎的十大Linux發行版 進入2025年,我們很高興與Linux愛好者分享今年迄今為止最受歡迎的發行版。 DistroWatch一直是關於開源操作系統的最可靠信息來源,尤其關注Linux發行版和BSD版本。它持續收集並呈現大量關於Linux發行版的信息,使它們更容易訪問。 雖然它不能很好地衡量發行版的流行度或使用率,但DistroWatch仍然是Linux社區內最被接受的流行度衡量標準。它使用頁麵點擊排名(簡稱PHR)統計數據來衡量Linux發行版在網站訪問者中的流行度。 [您可

2025年Linux的前15個平鋪窗戶經理2025年Linux的前15個平鋪窗戶經理May 08, 2025 am 10:08 AM

Linux窗口管理器:最佳瓷磚選項的綜合指南 Linux窗口管理人員協調應用程序窗口的行為方式,悄悄地管理開放程序的視覺佈置。 本文探索了頂級鋪平的窗戶男人

如何使用Linux中的SED動態替換數字如何使用Linux中的SED動態替換數字May 08, 2025 am 09:33 AM

Linux系統中的sed命令(流編輯器)是一款強大的文本處理工具,廣泛用於文本操作任務,包括搜索、查找和替換文本,甚至執行高級腳本編寫。 本文將指導您了解sed的基礎知識,解釋如何將其用於動態數字替換,並為初學者提供實用示例。 什麼是sed? sed命令逐行處理文本,允許您: 搜索特定模式。 替換文本或數字。 刪除或插入行。 以各種方式轉換文本。 它以非交互方式工作,這意味著它可以在無需人工干預的情況下處理文件或文本流。 sed命令的基本語法 sed [選項] '命令' 文件 說明: 選項

如何在Arch Linux上使用Pacman和Aur助手如何在Arch Linux上使用Pacman和Aur助手May 08, 2025 am 09:25 AM

Arch Linux以其靈活性和控製而聞名,展示了獨特的軟件包管理系統。 本指南簡化了Arch的軟件包管理,重點關注PACMAN和AUR(Arch用戶存儲庫)的幫助者。 [相關:Essential Arch Linux命令

10 Linux Sysadmins 2025年的新年決議10 Linux Sysadmins 2025年的新年決議May 08, 2025 am 09:17 AM

在2025年提高Linux Sysadmin技能!今年,設定了雄心勃勃的目標,以提高您的專業知識和效率。 無論您是退伍軍人還是剛開始,這10條決議都將指導您的專業發展。 1。擁抱自動化

Linux和Windows之間的日誌記錄和審核有何不同?Linux和Windows之間的日誌記錄和審核有何不同?May 08, 2025 am 12:03 AM

LinuxOffersMoreGranularControlodlogging和audinging,wherwindowsProvidesMoreCentralizedSystem.1)linuxusestoolslikesyslog,rsyslog,rsyslog和journaldforcustomizablegging.2)

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

Dreamweaver Mac版

Dreamweaver Mac版

視覺化網頁開發工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器