匿名tarball


11

Tar将我的用户名编码为tarball。我可以强迫它制作一个完全匿名的tarball吗?

--owner root仅替换我的用户名的某些实例。添加USER=rootUSER=root tar c --owner root data无效。

简而言之,我希望:

echo hello world > data; tar c --owner root data | grep "$USER"

匹配。

Answers:


14

我所缺少的是--group=root除了--owner=root

tar -c --{owner,group}=root

(可能带有可选的--numeric-owner)将档案完全匿名化。


6
bash括号的扩展{a,b}可能会令人困惑。--{owner,group}=root 将会扩展为--owner=root --group=root
Sanya_Zol '16

9

您可以使用--numeric-owner,这只会将您的UID(在大多数系统上为1000或类似的东西)放入文件中。来自 man tar

 --numeric-owner
       always use numbers for user/group names

谢谢。它可以完成工作,尽管只是部分完成。看起来cpio(似乎总是以数字方式编码uid)可以通过--owner开关完全匿名化其存档。
PSkocik '16

1
IIRC --owner仅适用于提取/传递。如果我错了,可以使用cpio的-H选项直接写入tar文件。
Anthon

它似乎-o也适用。我尝试创建一个有和没有的简单存档,--owner root:root然后将它们各自的十六进制转储进行比较。发生了变化的是两个两个字节的序列,它们分别被little-endian解码为0和my $UID
PSkocik '16

1
@PSkocik这很有趣,我只是检查man cpio,并cpio --help和他们都证实了我之前的评论。可能是源代码已更新,但文档没有更新(GNU cpio 2.11)
Anthon
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.