GNU/Linux >> Tutoriels Linux >  >> Linux

Compression / Archivage qui conserve les autorisations et le propriétaire du fichier ?

Je sais que des questions similaires ont été posées sur les autorisations, mais quelle forme de compression ou d'archivage conserve les autorisations et les propriétaires de chaque fichier et répertoire ?

J'envisageais le tar.gz format, mais serait-ce correct ?

J'ai besoin de déplacer 37 Go de fichiers et de répertoires vers un autre serveur et j'ai besoin que tout soit exactement le même lorsqu'il n'est pas compressé.

Réponse acceptée :

Les outils d'archivage traditionnels tar et cpio préservent la propriété et les autorisations Unix (utilisateur/groupe/autre) ainsi que les horodatages (avec cpio, assurez-vous de passer -m lors de l'extraction). Si vous n'aimez pas leur syntaxe mystérieuse¹, vous pouvez utiliser leur pax de remplacement POSIX (pax -w -pe ) Tous ces éléments génèrent une archive non compressée ; dirigez l'archive vers un outil comme gzip ou xz pour le compresser (GNU tar a des options pour faire la compression). Les utilisateurs et les groupes sont identifiés par leur nom ; GNU tar a une option .

Aucun de ces outils ne conserve les fonctionnalités modernes telles que l'ACL, les capacités, les contextes de sécurité ou d'autres attributs étendus.

Certaines versions de tar peuvent stocker ACL. Voir Quoi utiliser pour sauvegarder des fichiers, en préservant les ACL ? Avec GNU tar, passez --acls à la fois lors de la création et de l'extraction de l'archive.

Un système de fichiers squashfs, comme suggéré par mikeserv, stocke les capacités et les attributs étendus, y compris le contexte SELinux, mais pas ACL. (Vous avez besoin de versions qui ne sont pas trop anciennes.) Si vous avez à la fois des contextes ACL et de sécurité, vous pouvez utiliser un système de fichiers squashfs et enregistrer l'ACL en exécutant getfacl -R à la racine du système de fichiers d'origine et restaurez-les après avoir extrait les fichiers avec setfacl --restore .

Si vous souhaitez enregistrer absolument tout, y compris l'ACL, les horodatages inférieurs à la seconde, les attributs étendus et les attributs spécifiques au système de fichiers, vous pouvez cloner le système de fichiers. L'inconvénient de cette approche est que vous ne pouvez pas facilement écrire directement une copie compressée. Le moyen ultime de cloner le système de fichiers consiste à copier le périphérique bloc ; bien sûr, c'est du gaspillage en ce sens qu'il copie l'espace vide. Vous pouvez également créer un système de fichiers suffisamment grand pour stocker tous les fichiers et utiliser cp -a avec le cp commande de GNU coreutils pour copier les fichiers ; GNU cp est assez doué pour tout copier, y compris les fonctionnalités non traditionnelles telles que les attributs étendus et les ACL.

En relation:TextEdit a transformé le fichier HTML en RTF lorsqu'il était ouvert - comment annuler ??

¹ Bien que celui-ci soit vraiment exagéré.


Linux
  1. Comment modifier les autorisations et les propriétaires via la ligne de commande

  2. Linux - Comprendre les autorisations Unix et les types de fichiers ?

  3. Priorité de l'utilisateur et du propriétaire du groupe dans les autorisations de fichier ?

  4. Autorisations de fichiers et sauvegarde ?

  5. Si je modifie les autorisations sur un fichier tar, cela s'appliquera-t-il aux fichiers qu'il contient ?

Autorisations et propriété des fichiers Linux expliquées avec des exemples

Commande Linux tar pour compresser et extraire des fichiers

Méthodes de compression et d'archivage sous Linux

Gérer les autorisations de répertoire et de fichier avec chmod Recursive

Comprendre les autorisations de fichiers de base et la propriété sous Linux

Qu'est-ce qui est le plus efficace - la compression tar ou zip ? Quelle est la différence entre tar et zip ?