Czego używać do tworzenia kopii zapasowych plików, zachowując listy ACL?


24

Podczas używania narzędzia tar do przechowywania plików w kopiach zapasowych traci się rozszerzone listy ACL.

Czy istnieje jakieś powszechnie używane, a nie hackerskie rozwiązanie (takie jak: utworzenie skryptu, który przekreśli ACL od zera), aby zachować ACL?


1
Zobacz także to zduplikowane pytanie .
Totor

Odpowiedzi:


4

Używanie tar

Aby utworzyć:

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

Aby rozpakować:

tar --acls -xpf backup.tar

3
tar: unrecognized option '--acls'nie działa.
maniat1k

1
Fedora ma niestandardowe łatki GNU Tar, które obejmują--acls
user55149,

3
W Debianie tarnie obsługuje --aclsaż do jessie. (Patrz błąd # 732071. ) Ta funkcja jest również dostępna w pakiecie od wheezy-backports.
Alastair Irvine

Zauważ, że wspomniana wheezy-backportswersja tarma błąd w --aclsopcji. Ekstrakcja tarballa przy użyciu tej opcji przypisze acl, nawet jeśli archiwum nie ma (!). Zobacz tutaj .
Digger

14

Właściwie uważam, że pytanie nie dotyczyło (standardowych) bitów uprawnień do plików, ale rozszerzone informacje ACL (patrz setfacl (1) lub acl (5)).

Według mojej wiedzy niezmodyfikowana tar GNU ignoruje informacje ACL. (Strona podręcznika GNU tar 1.15.1 dostarczana z RHEL 5.2 wspomina o przełącznikach --acls i --no-acls, ale nie udało mi się ich uruchomić.)

Jednak gwiazda Program jest w stanie wykonać kopię zapasową i przywrócić ACL, jeśli wybierzesz exustar format:

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

Strona główna Star: http://cdrecord.berlios.de/new/private/star.html Gwiazda jest dostępna przynajmniej w Ubuntu.


To wygląda na to, czego szukam, będę musiał się temu przyjrzeć. Teraz muszę kupić kilka godzin dziennie;)
jedwab

3
starnie jest dostępny w Debianie i wydaje się, że nie jest utrzymywany przez „zespół”. Projekt jest jednak nadal żywy i utrzymywany po ponad 30 latach. Spróbuj, bsdtarjeśli chcesz czegoś innego.
Totor

1
po zamknięciu Belios można go znaleźć tutaj: sourceforge.net/projects/s-tar/files
Jonas Stein

9

Ja również szukam rozwiązania. Do tej pory znalazłem to:

najpierw wykonaj getfactl z mojego folderu

getfacl -R /a_folder > folder.acl

następnie zrób zwykłą smołę

tar -czvf folder.tar.gz /a_folder

kiedy to wyodrębnię

tar -xvf folder.tar.gz

wykonaj setfacl dla uprawnień.

setfacl --restore=folder.acl

to działa dla mnie.


1
Dzięki. Na tej stronie nic mi nie działało [naprawdę to mam na myśli, nawet skompilowałem gwiazdę ze źródła, ale to nie zadziałało]. Ale to rzeczywiście działało. Choć nie elegancki, ale działa idealnie.
ashishsony


2

Jeśli szukasz prostego w użyciu, ale potężnego rozwiązania, polecam rdiff-backup.

Zasadniczo tworzy kopię katalogu źródłowego do katalogu docelowego, ale zapisuje także dodatkowe informacje, dzięki czemu możesz cofnąć się w czasie, kiedy chcesz.

I oczywiście zachowuje dowiązania symboliczne, specjalne pliki, dowiązania twarde, uprawnienia, prawa własności i czasy modyfikacji.


2

Proponuję użyć bsdtar.

bsdtar kopie zapasowe rozszerzonej listy ACL domyślnie używają tej samej składni co GNU tar, a tworzone przez nią archiwa są czytelne GNU tar.

Nazwa pakietu i polecenia (w ramach dystrybucji opartych na Debianie) to bsdtar.

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

Polecenie 2nd (ekstrakt) przywraca listy ACL.


Nie mogę go uruchomić, chociaż jestem pewien, że działał jakiś czas temu. Złożył błąd, code.google.com/p/libarchive/issues/detail?id=329 .
Ambroz Bizjak

To samo tutaj ... Wypróbowałem to na Jessie Debiana 8 i nie działało. :(
Totor

Używam go na Debianie (x64, PC) od kilku lat bez żadnego problemu (wheezy, jessie i obecnie rozciągam na kilku maszynach).
Binarus

1

Z tar strony man.

-p, --same-permissions, --preserve-permissions
             ignoruje umask podczas wypakowywania plików (domyślnie dla roota)

W rzeczywistości to nie archiwizacja zmienia uprawnienia dostępu (ACL), ale ich rozpakowywanie. Tar jest bardzo często używany do dystrybucji plików między użytkownikami, dlatego wygodnie jest zastosować umask użytkownika podczas rozpakowywania.

Aby zachować poprzednie uprawnienia do plików, po prostu reklamuj dla swoich opcji. Na przykład

Smoła prosta:

tar xvp some-file

bz.tar:

tar xvjp some-file

gz.tar:

tar xvzp some-file

to nie działa.
maniat1k

1
Co więcej, tar automatycznie sprawdza, co wyodrębnić. Nie ma potrzeby przekazywania „j” lub „z”.
Dobra osoba,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.