Sử dụng gì để sao lưu tập tin, bảo quản ACL?


24

Khi sử dụng tiện ích tar để lưu trữ các tệp trong các bản sao lưu, người ta sẽ mất các ACL mở rộng.

Có một số giải pháp thường được sử dụng và không hackish (như: tạo một tập lệnh sẽ truy xuất các ACL từ đầu) để bảo toàn các ACL không?


Câu trả lời:


4

Sử dụng nhựa đường

Để tạo:

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

Để cởi trói:

tar --acls -xpf backup.tar

3
tar: unrecognized option '--acls'không hoạt động.
maniat1k

1
Fedora có các bản vá GNU Tar không chuẩn bao gồm--acls
user55149

3
Trong Debian, tarkhông hỗ trợ --aclscho đến khi jessie. (Xem lỗi # 732071. ) Tính năng này cũng có sẵn trong gói từ wheezy-backports.
Alastair Irvine

Lưu ý rằng wheezy-backportsphiên bản tarđã nói có một lỗi --aclstùy chọn. Trích xuất Tarball bằng tùy chọn đã nói sẽ chỉ định acl, ngay cả khi kho lưu trữ không có (!). Xem tại đây .
Digger

14

Trên thực tế, tôi tin rằng câu hỏi không phải là về các bit cho phép tệp (tiêu chuẩn), mà là thông tin ACL mở rộng (xem setfacl (1) hoặc acl (5)).

Theo hiểu biết của tôi, GNU tar chưa sửa đổi bỏ qua thông tin ACL. (Trang hướng dẫn cho GNU tar 1.15.1 khi được gửi cùng với RHEL 5.2 có đề cập đến các công tắc --acls và --no-acls, nhưng tôi đã không làm cho chúng hoạt động.)

Tuy nhiên, chương trình sao có thể sao lưu và khôi phục ACL, nếu bạn chọn định dạng exustar :

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

Trang chủ của ngôi sao: ít nhất là http://cdrecord.berlios.de/new/private/star.html Sao có sẵn trong ubfox.


Điều này trông giống như những gì tôi tìm kiếm, tôi sẽ phải xem xét điều đó. Bây giờ tôi cần mua thêm vài giờ mỗi ngày;)
lụa

3
starkhông có sẵn trên Debian và dường như không được duy trì bởi một "nhóm". Dự án vẫn còn sống và duy trì sau hơn 30 năm. Hãy thử bsdtarnếu bạn muốn một cái gì đó khác.
Totor

1
sau khi tắt belios bạn có thể tìm thấy nó ở đây: sourceforge.net/projects/s-tar/files
Jonas Stein

9

Tôi đang tìm kiếm một giải pháp cho đến nay tôi đã tìm thấy điều này:

đầu tiên làm một getfactl từ thư mục của tôi

getfacl -R /a_folder > folder.acl

sau đó làm một tar thông thường

tar -czvf folder.tar.gz /a_folder

khi tôi giải nén nó

tar -xvf folder.tar.gz

làm một setfacl cho các quyền.

setfacl --restore=folder.acl

cái này hiệu quả với tôi


1
Cảm ơn. Không có gì làm việc cho tôi trên trang này [tôi thực sự có ý đó, tôi thậm chí đã biên dịch sao từ nguồn, nhưng nó không thực hiện được công việc]. Nhưng điều này thực sự đã làm việc. Mặc dù không thanh lịch, nhưng hoạt động hoàn hảo.
ashishsony


2

Nếu bạn đang tìm kiếm một giải pháp mạnh mẽ nhưng dễ sử dụng, tôi khuyên bạn nên rdiff-backup.

Về cơ bản, nó tạo một bản sao của thư mục nguồn vào thư mục đích nhưng nó cũng lưu thông tin bổ sung để bạn có thể quay ngược thời gian bất cứ khi nào bạn muốn.

Và, tất nhiên, nó bảo tồn các liên kết tượng trưng, ​​các tệp đặc biệt, liên kết cứng, quyền, quyền sở hữu uid / gid và thời gian sửa đổi.


2

Tôi đề nghị bạn sử dụng bsdtar.

bsdtar sao lưu ACL mở rộng theo mặc định , nó sử dụng cú pháp tương tự như GNU tar, và tài liệu lưu trữ mà nó tạo ra có thể đọc được GNU tar.

Tên gói và tên (theo phân phối dựa trên Debian) là bsdtar.

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

Lệnh 2 (giải nén) khôi phục ACL.


Tôi không thể làm cho nó hoạt động, mặc dù tôi chắc chắn rằng nó đã hoạt động một thời gian trước đây. Đã gửi một lỗi, code.google.com/p/libarchive/issues/detail?id=329 .
Ambroz Bizjak

Tương tự ở đây thực sự ... Tôi đã thử nó trên Debian 8 Jessie và nó không hoạt động. :(
Toto

Tôi đang sử dụng nó trên Debian (x64, PC) từ vài năm nay mà không gặp vấn đề gì (khò khè, jessie và hiện đang kéo dài trên một số máy).
Binarus

1

Từ trang tar Man.

-p, --same-allow, --preserve-allow
             bỏ qua umask khi giải nén tập tin (mặc định cho root)

Đây không thực sự là hành động lưu trữ làm thay đổi quyền truy cập (ACL), mà là hành động giải nén chúng. Tar là rất thường được sử dụng để phân phối tập tin từ một người dùng khác, và vì vậy nó được nghĩ thuận tiện để áp dụng một người dùng umask khi giải nén.

Để duy trì các quyền trước đây, chỉ cần quảng cáo cho các tùy chọn của bạn. Ví dụ

Tar thẳng:

tar xvp some-file

bz.tar:

tar xvjp some-file

gz.tar:

tar xvzp some-file

cái này không hoạt động
maniat1k

1
Hơn nữa tar tự động tìm ra những gì để giải nén. Không cần phải vượt qua 'j' hoặc 'z'.
Người tốt
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.