Tarballs anonymes

10

Tar code mon nom d'utilisateur dans l'archive tar. Puis-je le forcer à créer une archive tar entièrement anonyme?

--owner rootremplace uniquement certaines instances de mon nom d'utilisateur. Ajout USER=root: USER=root tar c --owner root datan'a aucun effet.

Bref, je souhaite:

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

pour ne pas correspondre.

PSkocik
la source

Réponses:

13

Ce qui me manquait, c'était --group=rooten plus --owner=root.

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

(éventuellement avec une option --numeric-owner) anonymise complètement l'archive.

PSkocik
la source
6
l'expansion de l'accolade bash {a,b}peut être assez déroutante. --{owner,group}=root sera étendu à--owner=root --group=root
Sanya_Zol
9

Vous pouvez utiliser --numeric-ownercela qui mettra simplement votre UID (1000 ou quelque chose de similaire sur la plupart des systèmes) dans le fichier. De man tar:

 --numeric-owner
       always use numbers for user/group names
Anthon
la source
Merci. Il fait le travail, mais en partie seulement. On dirait que cpio (qui semble toujours encoder les uids numériquement) peut anonymiser complètement ses archives via le --ownercommutateur.
PSkocik
1
IIRC - le propriétaire ne travaille que sur l'extraction / la transmission. Si je me trompe, vous pouvez utiliser l' -Hoption de cpio pour écrire directement des fichiers tar.
Anthon
Cela semble fonctionner -oaussi. J'ai essayé de créer une archive simple avec et sans --owner root:root, puis j'ai différencié leurs hexdumps respectifs. Ce qui a changé, ce sont deux séquences de deux octets qui ont été décodées en petits caractères à 0 et à ma $UIDrespectivement.
PSkocik
1
Ce @PSkocik est intéressant, je viens de vérifier man cpioet cpio --helpet ils confirment tous les deux ce que je commenté avant. La source a probablement été mise à jour, mais la documentation ne l'était pas (GNU cpio 2.11)
Anthon