GNU/Linux >> Linux Esercitazione >  >> Linux

Compressione/archiviazione che mantiene le autorizzazioni e il proprietario del file?

So che sono state poste domande simili sui permessi, ma quale forma di compressione o archiviazione mantiene i permessi e i proprietari dei file di ogni file e directory?

Stavo considerando il tar.gz formato, ma sarebbe giusto?

Ho bisogno di spostare 37 GB di file e directory su un altro server e ho bisogno che tutto sia esattamente lo stesso quando non è compresso.

Risposta accettata:

Entrambi i tradizionali strumenti di archiviazione tar e cpio conservano la proprietà e i permessi Unix (utente/gruppo/altro) così come i timestamp (con cpio, assicurati di passare -m durante l'estrazione). Se non ti piace la loro sintassi arcana¹, puoi usare il loro sostituto POSIX pax (pax -w -pe ) Tutti questi producono un archivio non compresso; reindirizzare l'archivio in uno strumento come gzip o xz per comprimerlo (GNU tar ha opzioni per eseguire la compressione). Utenti e gruppi sono identificati dal loro nome; GNU tar ha un'opzione .

Nessuno di questi strumenti conserva funzionalità moderne come ACL, funzionalità, contesti di sicurezza o altri attributi estesi.

Alcune versioni di tar possono memorizzare ACL. Vedere Cosa utilizzare per eseguire il backup dei file, preservando gli ACL? Con GNU tar, passa --acls sia in fase di creazione che di estrazione dell'archivio.

Un filesystem squashfs, come suggerito da mikeserv, memorizza capacità e attributi estesi incluso il contesto SELinux, ma non ACL. (Hai bisogno di versioni che non siano troppo antiche.) Se hai sia ACL che contesti di sicurezza, puoi usare un filesystem squashfs e salvare l'ACL eseguendo getfacl -R alla radice del filesystem originale e ripristinarli dopo aver estratto i file con setfacl --restore .

Se vuoi salvare assolutamente tutto, inclusi ACL, timestamp subsecondi, attributi estesi e attributi specifici del filesystem, puoi clonare il filesystem. Lo svantaggio di questo approccio è che non puoi comodamente scrivere direttamente una copia compressa. Il modo migliore per clonare il filesystem è copiare il dispositivo a blocchi; ovviamente questo è uno spreco in quanto copia lo spazio vuoto. In alternativa, crea un filesystem sufficientemente grande da memorizzare tutti i file e usa cp -a con il cp comando da GNU coreutils per copiare i file; GNU cp è abbastanza bravo a copiare tutto, comprese le funzionalità non tradizionali come attributi estesi e ACL.

Correlati:TextEdit ha trasformato il file HTML in RTF durante l'apertura:come annullare?

¹ Anche se questo è davvero esagerato.


Linux
  1. Come modificare autorizzazioni e proprietari tramite riga di comando

  2. Come decomprimere il formato di file .xz in Linux usando le utility tar e xz?

  3. Linux:comprensione delle autorizzazioni e dei tipi di file Unix?

  4. Se cambio le autorizzazioni su un file tar, si applicherà ai file al suo interno?

  5. Script autoestraenti:Tar -xo e Dd?

Permessi e proprietà dei file Linux spiegati con esempi

Comando tar di Linux per comprimere ed estrarre file

Gestisci le autorizzazioni di directory e file con chmod Recursive

Comprendere le autorizzazioni di base dei file e la proprietà in Linux

Quale è più efficiente:compressione tar o zip? Qual è la differenza tra tar e zip?

Comprensione delle autorizzazioni UNIX e dei tipi di file