Cosa utilizzare per il backup dei file, preservando gli ACL?


24

Quando si utilizza l'utilità tar per archiviare i file nei backup si perdono gli ACL estesi.

Esiste una soluzione comunemente usata e non hacker (come: creare uno script che valuterà gli ACL da zero) per preservare gli ACL?


Risposte:


4

Usando tar

Creare:

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

Per decomprimere:

tar --acls -xpf backup.tar

3
tar: unrecognized option '--acls'non funziona.
maniat1k,

1
Fedora ha patch GNU Tar non standard che includono--acls
user55149 il

3
In Debian, tarnon supporta --aclsfino a Jessie. (Vedi bug # 732071. ) La funzione è disponibile anche nel pacchetto da wheezy-backports.
Alastair Irvine,

Nota che detta wheezy-backportsversione di tarha un bug con l' --aclsopzione. L'estrazione di Tarball usando questa opzione assegnerà acl, anche se l'archivio non ne aveva (!). Vedi qui .
Digger,

14

In realtà, credo che la domanda non riguardasse i bit di autorizzazione del file (standard), ma le informazioni ACL estese (vedere setfacl (1) o acl (5)).

Per quanto ne so, il tar GNU non modificato ignora le informazioni ACL. (La pagina man di GNU tar 1.15.1 fornita con RHEL 5.2 menziona gli switch --acls e --no-acls, ma non li ho fatti funzionare.)

Tuttavia, il programma stellare è in grado di eseguire il backup e il ripristino di ACL, se si seleziona il formato exustar :

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

Home page di Star: http://cdrecord.berlios.de/new/private/star.html Star è disponibile almeno in Ubuntu.


Sembra quello che cerco, dovrò dare un'occhiata a quello. Ora devo comprare qualche ora in più al giorno;)
seta,

3
starnon è disponibile su Debian e non sembra essere gestito da una "squadra". Il progetto è ancora vivo e mantenuto dopo oltre 30 anni. Prova bsdtarse vuoi qualcos'altro.
Totor,

1
dopo lo spegnimento di belios puoi trovarlo qui: sourceforge.net/projects/s-tar/files
Jonas Stein

9

Sto cercando una soluzione e finora ho trovato questo:

prima fai un getfactl dalla mia cartella

getfacl -R /a_folder > folder.acl

quindi fai un catrame normale

tar -czvf folder.tar.gz /a_folder

quando lo estraggo

tar -xvf folder.tar.gz

fare un setfacl per le autorizzazioni.

setfacl --restore=folder.acl

questo funziona per me.


1
Grazie. Niente ha funzionato per me in questa pagina [intendo davvero, ho anche compilato la stella dalla fonte, ma non è riuscito a fare il lavoro]. Ma questo ha funzionato davvero. Anche se non elegante, ma funziona perfettamente.
ashishsony,


2

Se stai cercando una soluzione semplice ma potente da usare, ti consiglierei rdiff-backup.

Fondamentalmente, crea una copia di una directory di origine in una directory di destinazione, ma salva anche informazioni aggiuntive in modo da poter tornare indietro nel tempo quando vuoi.

E, naturalmente, conserva collegamenti simbolici, file speciali, collegamenti fissi, permessi, proprietà uid / gid e tempi di modifica.


2

Ti consiglio di usare bsdtar.

bsdtar backup esteso ACL di default , si usa la stessa sintassi come GNU tar, e gli archivi che produce sono leggibili da GNU tar.

Il nome del pacchetto e del comando (sotto le distribuzioni basate su Debian) è bsdtar.

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

Il secondo comando (estrai) ripristina gli ACL.


Non riesco a farlo funzionare, anche se sono sicuro che ha funzionato qualche tempo fa. Ha archiviato un bug, code.google.com/p/libarchive/issues/detail?id=329 .
Ambroz Bizjak,

Lo stesso qui in realtà ... L'ho provato su Debian 8 Jessie e non ha funzionato. :(
Totor

Lo sto usando su Debian (x64, PC) da diversi anni senza alcun problema (wheezy, jessie e attualmente si estendono su più macchine).
Binarus

1

Dalla pagina man tar.

-p, --same-autorizzazioni, --preserve-autorizzazioni
             ignora umask durante l'estrazione dei file (impostazione predefinita per root)

In realtà non è l'atto di archiviazione che modifica le autorizzazioni di accesso (ACL), ma l'atto di decomprimerle. Tar è molto spesso usato per distribuire file da un utente a un altro, e quindi si ritiene conveniente applicare un utente umask quando decomprimono.

Per conservare le autorizzazioni precedenti dei file, è sufficiente aggiungere un ap alle proprie opzioni. Per esempio

Catrame dritto:

tar xvp some-file

bz.tar:

tar xvjp some-file

gz.tar:

tar xvzp some-file

questo non funziona.
maniat1k,

1
Inoltre tar individua automaticamente cosa estrarre. Non è necessario passare "j" o "z".
Brava persona l'
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.