为什么交互模式下的某些 busybox 命令在 chrooted 环境中不可用?

为什么交互模式下的某些 busybox 命令在 chrooted 环境中不可用?

我尝试使用 busybox 设置一个最小的 chroot 环境。
我创建了一个目录“testRoot”,并将“busybox”复制到其中。

从此目录我执行:

sudo chroot ./ /busybox sh

现在我有一个交互式环境。‘ls’和‘pwd’等命令可以工作:

BusyBox v1.27.2 (Ubuntu 1:1.27.2-2ubuntu3.2) built-in shell (ash)
Enter 'help' for a list of built-in commands.
/ # ls
busybox  testje
/ # pwd
/
/ # 

其他一些 (如 'vi') 则不然:

/ # vi
sh: vi: not found

另一方面,在交互式 shell 之外启动 vi 是可行的:

sudo chroot ./ /busybox vi

并且在交互式 shell 中的 chroot 环境之外也没有问题:

eldendo@eldendo-WIM2140:~/testRoot$ busybox sh
BusyBox v1.27.2 (Ubuntu 1:1.27.2-2ubuntu3.2) built-in shell (ash)
Enter 'help' for a list of built-in commands.
~/testRoot $ vi (--- vi starts up here ---)
~/testRoot $ 

有任何想法吗 ?

相关内容