bwrap execvp 在 ro-bind 非根路径时没有这样的文件或目录

bwrap execvp 在 ro-bind 非根路径时没有这样的文件或目录

当我绑定文件系统根目录时它有效

~> bwrap --ro-bind / / -- which which
/usr/bin/which

然而当我绑定非root时它失败了

~> bwrap --ro-bind /usr /usr -- which which
bwrap: execvp which: No such file or directory

尽管/usr/bin/which是在/usr

为什么会失败?

答案1

您没有绑定解释器对于该二进制文件 –/lib/ld-linux.so.2/lib64/ld-linux-x86-64.so.2类似。(内核本身实际上并不理解动态链接的二进制文件,而是在 ELF 标头中指定加载器。它的工作原理与脚本的 #! 行非常相似。)

即使在合并了 /usr 的系统上,此文件通常仍在 /lib 中。(并且在系统上没有合并的 /usr,许多其他所需库(例如 libc.so)也在 /lib 中。

相关内容