Tarbal anonim

11

Tar mengkodekan nama pengguna saya ke tarball. Bisakah saya memaksanya untuk membuat tarball sepenuhnya anonim?

--owner roothanya menggantikan beberapa contoh nama pengguna saya. Menambahkan USER=root: USER=root tar c --owner root datatidak berpengaruh.

Singkatnya, saya berharap untuk:

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

untuk tidak cocok.

PSkocik
sumber

Jawaban:

14

Apa yang saya lewatkan adalah --group=roottambahan --owner=root.

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

(mungkin dengan opsional --numeric-owner) sepenuhnya menganonimkan arsip.

PSkocik
sumber
6
ekspansi bash brace {a,b}bisa sangat membingungkan. --{owner,group}=root akan diperluas ke--owner=root --group=root
Sanya_Zol
9

Anda dapat menggunakan --numeric-owner, itu hanya akan menempatkan UID Anda (1000 atau yang serupa pada kebanyakan sistem) dalam file. Dari man tar:

 --numeric-owner
       always use numbers for user/group names
Anthon
sumber
Terima kasih. Itu melakukan pekerjaan, meskipun hanya sebagian. Sepertinya cpio (yang sepertinya selalu meng-encode secara numerik) dapat menganonimkan arsipnya sepenuhnya melalui --ownersakelar.
PSkocik
1
IIRC - pemilik hanya bekerja pada ekstraksi / pass-through. Jika saya salah, Anda dapat menggunakan -Hopsi cpio untuk secara langsung menulis file tar.
Anthon
Tampaknya bekerja -ojuga. Saya mencoba membuat arsip sederhana dengan dan tanpa --owner root:rootdan kemudian membedakan hexdump masing-masing. Apa yang berubah adalah dua urutan dua byte yang sedikit-endian-diterjemahkan ke 0 dan $UIDmasing - masing.
PSkocik
1
@PSkocik Itu menarik, saya hanya memeriksa man cpiodan cpio --helpdan mereka berdua mengkonfirmasi apa yang saya komentari sebelumnya. Mungkin sumbernya telah diperbarui, tetapi dokumentasinya tidak (GNU cpio 2.11)
Anthon