安全提取文件的技术有哪些?

cer*_*cem 4 archive cpio sandbox

昨天我在Slitaz上做了一些实验。它使用多个 initrd.img 来存储文件/更改。

我想将其中一个 initrd.gz 图像(这是一个 cpio 存档)提取到一个文件夹中,编辑/删除它们,再次重新打包。

我使用了这个代码:

cat rootfs.img | cpio -idvm
Run Code Online (Sandbox Code Playgroud)

然后所有文件都被提取到我的根文件系统。我的整个操作系统已损坏。(好尴尬的境遇……)

我应该怎么做才能安全但简单地进行此类操作?克罗特?LXC?(VirtualBox 是最后的手段)

slm*_*slm 5

使用相对路径归档

我建议不要在您的根级别运行这种类型的命令,/. 那是自找麻烦。我总是cpio -idvm在它们自己的目录中运行相关命令,然后使用mvcp将文件手动放置到它们需要的位置。

您还可以使用我在另一个标题为:如何在 SliTaz Linux 中安装 TazPkg 的U&L 问答中描述的方法,该方法也使用cpio.

使用绝对路径存档

如果存档是使用绝对路径构建的,您可以cpio使用--no-absolute-filenames开关告诉您阻止它提取到/.

$ mkdir /tmp/cpio-root
$ cd /tmp/cpio-root
$ cat rootfs.img | cpio -idvm --no-absolute-filenames
Run Code Online (Sandbox Code Playgroud)

参考