Linux 下是否可以使用虛擬 /proc 檔案系統在 chroot 中執行進程?

Linux 下是否可以使用虛擬 /proc 檔案系統在 chroot 中執行進程?

我需要在具有虛擬 /proc 檔案系統的 chroot 中運行一個進程,因此該進程無法存取同一主機上運行的其他進程。該進程必須在 root 下運行,並且對 chroot 中的檔案具有完全存取權。此外,檔案系統的任何變更都必須保留在 chroot 目錄中。

有可能嗎?

答案1

可以在 chroot 環境中掛載 /proc - 請參閱這個答案了解更多相關資訊。

我擔心該程式將無法存取其他進程,因為可以透過 /proc 存取這些資訊(如果不是全部)(/proc/[pid number] 將允許您存取此資訊)。

目前還不清楚「檔案系統的變更」是什麼意思,但如果這些變更是針對檔案系統的,不包括 /proc、/dev/ 等特殊位,則這些變更將保留在 chroot 中。

答案2

您可以使用 Linux 命名空間來完成此任務。容器(Docker、lxc)就是由它們組成的。man unshare是你的朋友。請注意,chroot如果使用不當,攻擊者很容易逃脫。使用前請先閱讀此內容。你被警告了。

相關內容