Tarballs anônimos

10

O Tar codifica meu nome de usuário no tarball. Posso forçá-lo a criar um tarball totalmente anônimo?

--owner rootsubstitui apenas algumas instâncias do meu nome de usuário. Adicionando USER=root: USER=root tar c --owner root datanão tem efeito.

Em suma, desejo:

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

para não corresponder.

PSkocik
fonte

Respostas:

13

O que eu estava perdendo era --group=rootalém disso --owner=root.

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

(possivelmente com um opcional --numeric-owner) anonimiza completamente o arquivo.

PSkocik
fonte
6
A expansão do bash brace {a,b}pode ser bastante confusa. --{owner,group}=root será expandido para--owner=root --group=root
Sanya_Zol 21/04
9

Você pode usar --numeric-owner, isso apenas colocará seu UID (1000 ou algo semelhante na maioria dos sistemas) no arquivo. De man tar:

 --numeric-owner
       always use numbers for user/group names
Anthon
fonte
Obrigado. Ele faz o trabalho, embora apenas parcialmente. Parece que o cpio (que parece sempre codificar uids numericamente) pode anonimizar completamente seus arquivos por meio do --ownerswitch.
PSKocik #
1
IIRC --owner trabalha apenas na extração / passagem. Se eu estiver errado, você pode usar a -Hopção do cpio para gravar diretamente arquivos tar.
Anthon
Parece funcionar -otambém. Tentei criar um arquivo simples com e sem --owner root:roote depois diferenciei seus respectivos hexdumps. O que mudou foram duas sequências de dois bytes que decodificaram little endian para 0 e minha, $UIDrespectivamente.
PSKocik
1
@ PSkocik Isso é interessante, eu apenas verifiquei man cpioe cpio --helpambos confirmam o que eu comentei antes. Provavelmente a fonte foi atualizado, mas a documentação não foi (GNU cpio 2,11)
Anthon