![将文件与保留的文件功能一起打包](https://linux22.com/image/1183736/%E5%B0%86%E6%96%87%E4%BB%B6%E4%B8%8E%E4%BF%9D%E7%95%99%E7%9A%84%E6%96%87%E4%BB%B6%E5%8A%9F%E8%83%BD%E4%B8%80%E8%B5%B7%E6%89%93%E5%8C%85.png)
我们正在构建 Ubuntu 20.04 的根文件系统,并使用以下命令安装软件包,debootstrap
并最终使用以下命令将其打包成 tar:
tar -c --use-compress-program=pigz -f $ROOTFS --numeric-owner -C $TMPDIR .
最后,当我们解压根文件系统时,文件功能就会丢失。例如,ping 会失去其cap_net_raw+ep
功能,这会导致生产中出现异常行为。
我尝试传递各种 tar 参数来保留文件功能,但失败了。这方面的指导将非常有帮助。
对于非常简单的复制:
# cd /bin && getcap /bin/ping && rm -f blah.tar && tar --preserve-permissions --xattrs --xattrs-include=*.* -cf ~/blah.tar ping && cd -
/bin/ping = cap_net_raw+ep
/root
# tar -xf blah.tar && getcap ./ping
#