从 buildroot 中删除 busybox

ran*_*nsh 3 boot hardening busybox init buildroot

作为 Linux强化的一部分,我们希望从使用buildroot创建的文件系统中删除busybox

但我不确定系统是否可以在没有它的情况下启动。

我很确定有依赖于busybox的init文件。

是否可以在没有 busybox 的情况下启动,或者是否需要自定义 init ?

gar*_*Red 5

这完全取决于您的发行版是否使用 Busybox for init.

要指向正确的方向,请运行ls -l /sbin/init

如果您得到类似以下内容(来自 OpenWRT 的示例):

~# ls -l /sbin/init
-rwxr-xr-x    1 root     root         10824 Jan 31  2016 /sbin/init
Run Code Online (Sandbox Code Playgroud)

这意味着init是一个不同的应用程序,您可以删除 Busybox。init由于 Busybox 提供了许多成功启动所需的工具,因此您仍然需要将所有命令需要替换为替代命令。

但是,如果您得到(来自 Alpine Linux 的示例):

~$ ls -l /sbin/init
lrwxrwxrwx    1 root     root            12 May  3 04:49 /sbin/init -> /bin/busybox
Run Code Online (Sandbox Code Playgroud)

这意味着init由 Busybox 提供,除非您可以用init替代品替换 Busybox,否则您将无法启动。

您必须考虑这样做是否真的强化了您的系统,因为您最终会用多个二进制文件替换一个二进制文件。