匿名のtarball


10

Tarはユーザー名をtarballにエンコードします。完全に匿名のtarballを作成するように強制できますか?

--owner rootユーザー名の一部のインスタンスのみを置き換えます。追加USER=rootUSER=root tar c --owner root data効果はありません。

要するに、私は次のことを望みます:

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

一致しません

回答:


13

欠けていたのは--group=rootに加えて--owner=rootです。

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

(おそらくオプションで--numeric-owner)アーカイブを完全に匿名化します。


6
bashブレースの展開{a,b}は非常に混乱する可能性があります。--{owner,group}=root 次のように拡張されます--owner=root --group=root
Sanya_Zol 2016

9

を使用でき--numeric-ownerます。これにより、ファイルにUID(ほとんどのシステムでは1000または類似のもの)が挿入されます。から man tar

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

ありがとう。一部ではありますが、それは仕事をします。cpio(常にuidを数値的にエンコードしているようです)は、--ownerスイッチを介してアーカイブを完全に匿名化できるように見えます。
PSkocik

1
IIRC-所有者は抽出/パススルーでのみ機能します。私が間違っている場合は、cpioの-Hオプションを使用して直接tarファイルを書き込むことができます。
Anthon

それも動作するよう-oです。私は--owner root:root、それぞれの16進ダンプがある場合とない場合の単純なアーカイブを作成して、diffしました。変更されたのは、リトルエンディアンでデコードされた2バイトの2バイトシーケンスと、$UIDそれぞれ0とmy でした。
PSkocik

1
@PSkocik面白いですね、チェックman cpioしたところcpio --help、両方とも私が以前にコメントしたことを確認しています。おそらくソースは更新されましたが、ドキュメントは更新されていません(GNU cpio 2.11)
Anthon
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.