ACL'leri koruyarak dosyaları yedeklemek için ne kullanılır?


24

Dosyaları yedeklerde saklamak için tar yardımcı programını kullanırken, bir genişletilmiş ACL'leri kaybeder.

ACL'leri korumak için sık kullanılan ve kesilmeyen bir çözüm var mı (gibi: ACL'leri sıfırdan okuyacak bir komut dosyası oluşturun)?


Yanıtlar:


4

Tar kullanarak

Yaratmak:

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

Yıldızını kaldırmak için:

tar --acls -xpf backup.tar

3
tar: unrecognized option '--acls'çalışmıyor.
maniat1k

1
Fedora, aşağıdakileri içeren standart olmayan GNU Tar --acls
eklerine sahiptir

3
Debian'da, jessie'ye kadar tardesteklemiyor --acls. (Bkz . # 732071 no'lu hata .) Bu özellik paketten de edinilebilir wheezy-backports.
Alastair Irvine,

Söz konusu wheezy-backportssürüm seçeneğinde tarbir hata olduğunu unutmayın --acls. Söz konusu seçeneği kullanarak Tarball çıkarma, arşivde (!) Bulunsa bile, acl'ler atayacaktır. Buraya bakınız .
Digger

14

Aslında, sorunun (standart) dosya izin bitleriyle ilgili olmadığını, fakat ACL bilgilerinin genişlediğini düşünüyorum (bkz. Setfacl (1) veya acl (5)).

Bildiğim kadarıyla, değiştirilmemiş GNU katranı ACL bilgisini görmezden geliyor. (RHEL 5.2 ile birlikte gönderilen GNU katran 1.15.1 man sayfası, --acls ve --no-acls düğmelerinden bahseder, ancak ben onları çalıştırmadım.)

Ancak, exustar formatını seçerseniz, yıldız programı ACL'leri yedekleyebilir ve geri yükleyebilir :

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

Yıldız giriş sayfası: http://cdrecord.berlios.de/new/private/star.html Yıldız, en azından ubuntu'da bulunur.


Bu benim aradığım şeye benziyor, buna bir göz atmam gerekecek. Şimdi günde biraz daha fazla saat satın almam gerekiyor;)
ipek

3
starDebian'da mevcut değildir ve bir "ekip" tarafından tutulmuyor gibi görünmektedir. Proje 30 yaşından sonra hala hayatta ve sürdürülüyor. bsdtarBaşka bir şey istersen dene .
Totor,

1
belios kapandıktan sonra burada bulabilirsiniz: sourceforge.net/projects/s-tar/files
Jonas Stein

9

Şu ana kadar şunu buldum, şu ana kadar bir çözüm arıyorum:

ilk önce klasörümden bir getfactl yap

getfacl -R /a_folder > folder.acl

sonra düzenli bir katran yapın

tar -czvf folder.tar.gz /a_folder

çıkardığımda

tar -xvf folder.tar.gz

izinler için bir setfacl yapın.

setfacl --restore=folder.acl

bu benim için çalışıyor.


1
Teşekkürler. Bu sayfada benim için hiçbir şey işe yaramadı [gerçekten kastediyorum, hatta kaynaktan yıldız derledim, ama işi yapamadı]. Fakat bu gerçekten işe yaradı. Zarif olmasa da mükemmel çalışıyor.
ashishsony


2

Kullanımı basit ama güçlü bir çözüm arıyorsanız, tavsiye ederim rdiff-backup .

Temel olarak, bir kaynak dizinin bir kopyasını bir hedef dizine oluşturur, ancak ek bilgileri kaydeder, böylece istediğiniz zaman geri gidebilirsiniz.

Ve tabii ki, sembolik bağlantıları, özel dosyaları, basılı linkleri, izinleri, kullanıcı kimliği ve değiştirme zamanlarını korur.


2

Ben Kullanmak önermek bsdtar.

bsdtar yedekleri, varsayılan olarak ACL uzatıldı kullandığı, aynı sözdizimi olarak GNU tar, hem de ürettiği arşivleri tarafından okunabilir GNU tar.

Paket ve komut adı (Debian tabanlı dağıtımlar altında) bsdtar.

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

2. (özü) komutu ACL'leri geri yükler.


Bir süre önce çalıştığından emin olmama rağmen çalışmasını sağlayamıyorum. Hata verdi, code.google.com/p/libarchive/issues/detail?id=329 .
Ambroz Bizjak

Aslında burada aynı ... Debian 8 Jessie denedim ve işe yaramadı. :(
Totor

Birkaç yıldan beri sorunsuzca Debian'da (x64, PC) kullanıyorum (wheezy, jessie ve şu anda birkaç makinede çalışıyorum).
Binarus

1

Katran Man Sayfasından.

-p, --same-permections, --preserve-permections,
             dosyaları çıkartırken umask'ı yok sayar

Aslında erişim izinlerini (ACL) değiştiren bir arşivleme eylemi değil, paketlerini açma eylemidir. Tar, dosyaları bir kullanıcıdan diğerine dağıtmak için sıkça kullanılır ve bu nedenle, bir kullanıcının paketlerini açtığında umask uygulamasının uygun olduğu düşünülür .

Önceden izin verilen dosyaları korumak için, seçenekleriniz için bir reklam vermeniz yeterlidir. Örneğin

Düz katran:

tar xvp some-file

bz.tar:

tar xvjp some-file

gz.tar:

tar xvzp some-file

bu çalışmıyor.
maniat1k

1
Ayrıca tar otomatik olarak ne çıkarılacağını bulur. 'J' veya 'z' geçmesine gerek yoktur.
İyi Kişi
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.