Que faut-il utiliser pour sauvegarder des fichiers, en préservant les ACL?

24

Lorsque vous utilisez l'utilitaire tar pour stocker des fichiers dans des sauvegardes, vous perdez les listes de contrôle d'accès étendues.

Existe-t-il une solution couramment utilisée et non piratée (comme: créer un script qui recréera les ACL à partir de zéro) pour préserver les ACL?

soie
la source
1
Voir aussi cette question en double .
Totor

Réponses:

4

Utilisation de tar

Créer:

tar --acls -cpf backup.tar some-dir-or-file

Pour décompresser:

tar --acls -xpf backup.tar
Scott Grayban
la source
3
tar: unrecognized option '--acls'ne marche pas.
maniat1k
1
Fedora a des correctifs GNU Tar non standard qui incluent--acls
user55149
3
Dans Debian, tarne prend pas en charge --aclsjusqu'à Jessie. (Voir bug # 732071. ) La fonctionnalité est également disponible dans le package de wheezy-backports.
Alastair Irvine
Notez que cette wheezy-backportsversion de tara un bug avec l' --aclsoption. L'extraction de tarball à l'aide de cette option affectera les acl, même si l'archive n'en avait pas (!). Voyez ici .
Digger
14

En fait, je pense que la question ne concernait pas les bits d'autorisation de fichier (standard), mais les informations ACL étendues (voir setfacl (1) ou acl (5)).

À ma connaissance, le tar GNU non modifié ignore les informations ACL. (La page de manuel de GNU tar 1.15.1 livrée avec RHEL 5.2 mentionne les commutateurs --acls et --no-acls, mais je ne les ai pas fait fonctionner.)

Cependant, le programme star est capable de sauvegarder et de restaurer les ACL, si vous sélectionnez le format exustar :

star -c -p -acl artype=exustar -f archive.tar  files...
star -x -acl -f archive.tar

Page d'accueil de Star: http://cdrecord.berlios.de/new/private/star.html Star est disponible dans ubuntu, au moins.

bhm
la source
Cela ressemble à ce que je cherche, je vais devoir y jeter un œil. Maintenant, je dois acheter quelques heures de plus par jour;)
soie
3
starn'est pas disponible sur Debian et ne semble pas être maintenu par une "équipe". Le projet est toujours vivant et maintenu après plus de 30 ans. Essayez bsdtarsi vous voulez autre chose.
Totor
1
après l'arrêt de belios, vous pouvez le trouver ici: sourceforge.net/projects/s-tar/files
Jonas Stein
9

Je cherche aussi une solution jusqu'à présent, j'ai trouvé ceci:

faites d'abord un getfactl à partir de mon dossier

getfacl -R /a_folder > folder.acl

puis faites un goudron ordinaire

tar -czvf folder.tar.gz /a_folder

quand je l'extrait

tar -xvf folder.tar.gz

faites un setfacl pour les permissions.

setfacl --restore=folder.acl

cela fonctionne pour moi.

maniat1k
la source
1
Merci. Rien n'a fonctionné pour moi sur cette page [je le pense vraiment, j'ai même compilé des étoiles à partir de la source, mais cela n'a pas fait le travail]. Mais cela a effectivement fonctionné. Bien que pas élégant, mais fonctionne parfaitement.
ashishsony
5
rsync with the -A and/or -X options.
Skaperen
la source
2

Si vous recherchez une solution simple à utiliser mais puissante, je recommanderais rdiff-backup.

Fondamentalement, il fait une copie d'un répertoire source dans un répertoire de destination, mais il enregistre également des informations supplémentaires afin que vous puissiez remonter dans le temps à tout moment.

Et, bien sûr, il préserve les liens symboliques, les fichiers spéciaux, les liens durs, les autorisations, la propriété uid / gid et les heures de modification.

Pablo Antonio
la source
2

Je vous suggère d'utiliser bsdtar.

bsdtar sauvegarde ACL étendue par défaut , elle utilise la même syntaxe que GNU tar, et les archives qu'elle produit sont lisibles par GNU tar.

Le nom du paquet et de la commande (sous les distributions basées sur Debian) est bsdtar.

bsdtar cf archive.tar /my/folder/using/extd_acl 
bsdtar xf archive.tar 

La 2ème commande (extraire) restaure les ACL.

Totor
la source
Je ne peux pas le faire fonctionner, même si je suis sûr que cela a fonctionné il y a quelque temps. A déposé un bogue, code.google.com/p/libarchive/issues/detail?id=329 .
Ambroz Bizjak du
Même chose ici en fait ... Je l'ai essayé sur Debian 8 Jessie et cela n'a pas fonctionné. :(
Totor
Je l'utilise sur Debian (x64, PC) depuis plusieurs années sans aucun problème (wheezy, jessie, et actuellement stretch sur plusieurs machines).
Binarus
1

À partir de la page de manuel tar.

-p, --same-permissions, --preserve-permissions
             ignorent umask lors de l'extraction de fichiers (par défaut pour root)

Ce n'est pas en fait l'acte d'archivage qui modifie les autorisations d'accès (ACL), mais l'acte de les déballer. Tar est très souvent utilisé pour distribuer des fichiers d'un utilisateur à un autre, et il est donc jugé pratique d'appliquer un umask aux utilisateurs lorsqu'ils décompressent.

Pour conserver les autorisations précédentes des fichiers, il vous suffit d'adapter vos options. Par exemple

Goudron droit:

tar xvp some-file

bz.tar:

tar xvjp some-file

gz.tar:

tar xvzp some-file
Eli Frey
la source
cela ne fonctionne pas.
maniat1k
1
De plus, tar détermine automatiquement ce qu'il faut extraire. Il n'est pas nécessaire de passer «j» ou «z».
Good Person