GNU/Linux >> Belajar Linux >  >> Linux

Kompresi / Pengarsipan Yang Menyimpan Izin Dan Pemilik File?

Saya tahu bahwa pertanyaan serupa telah diajukan tentang izin, tetapi bentuk kompresi atau pengarsipan mana yang menyimpan izin dan pemilik file dari setiap file dan direktori?

Saya sedang mempertimbangkan tar.gz formatnya, tapi apakah ini benar?

Saya perlu memindahkan 37GB file dan direktori ke server lain dan membutuhkan semuanya agar sama persis saat tidak dikompresi.

Jawaban yang Diterima:

Baik alat pengarsipan tradisional tar dan cpio mempertahankan kepemilikan dan izin Unix (pengguna/grup/lainnya) serta cap waktu (dengan cpio, pastikan untuk meneruskan -m saat mengekstrak). Jika Anda tidak menyukai sintaksis misteriusnya¹, Anda dapat menggunakan pax pengganti POSIX mereka (pax -w -pe ) Semua ini menghasilkan arsip yang tidak terkompresi; pipa arsip ke alat seperti gzip atau xz untuk mengompresnya (GNU tar memiliki opsi untuk melakukan kompresi). Pengguna dan grup diidentifikasi dengan nama mereka; GNU tar memiliki opsi .

Tidak satu pun dari alat ini yang mempertahankan fitur modern seperti ACL, kemampuan, konteks keamanan, atau atribut tambahan lainnya.

Beberapa versi tar dapat menyimpan ACL. Lihat Apa yang digunakan untuk mencadangkan file, melestarikan ACL? Dengan tar GNU, berikan --acls baik saat membuat dan mengekstrak arsip.

Sistem file squashfs, seperti yang disarankan oleh mikeserv, menyimpan kemampuan dan atribut yang diperluas termasuk konteks SELinux, tetapi bukan ACL. (Anda memerlukan versi yang tidak terlalu antik.) Jika Anda memiliki konteks ACL dan keamanan, Anda dapat menggunakan sistem file squashfs, dan menyimpan ACL dengan menjalankan getfacl -R di root sistem file asli dan pulihkan setelah mengekstrak file dengan setfacl --restore .

Jika Anda benar-benar ingin menyimpan semuanya termasuk ACL, stempel waktu subdetik, atribut yang diperluas, dan atribut khusus sistem file, Anda dapat mengkloning sistem file. Kelemahan dari pendekatan ini adalah Anda tidak dapat dengan mudah menulis salinan terkompresi secara langsung. Cara utama untuk mengkloning sistem file adalah dengan menyalin perangkat blok; tentu saja ini boros karena menyalin ruang kosong. Atau, buat sistem file yang cukup besar untuk menyimpan semua file dan gunakan cp -a dengan cp perintah dari GNU coreutils untuk menyalin file; GNU cp cukup bagus dalam menyalin semuanya termasuk fitur non-tradisional seperti atribut yang diperluas dan ACL.

Terkait:TextEdit mengubah file HTML menjadi RTF saat terbuka – bagaimana cara membatalkannya??

Meskipun yang satu ini benar-benar berlebihan.


Linux
  1. Cara Menyalin Izin dan Kepemilikan File ke File Lain di Linux

  2. Cara mengekstrak file .gz dan .tar.gz di Linux

  3. Pasang dengan sshfs dan tulis izin file

  1. Linux – Memahami Izin Unix Dan Jenis File?

  2. Diutamakan Pengguna Dan Pemilik Grup Dalam Izin File?

  3. Izin File Dan Menyimpan?

  1. Cara Mengubah Izin dan Pemilik melalui Command Line

  2. Bagaimana cara membuka kompresi format file .xz di Linux menggunakan utilitas tar dan xz?

  3. Jika Saya Mengubah Izin Pada File Tar, Apakah Itu Berlaku Untuk File Di Dalamnya?