
При использовании утилиты tar для хранения файлов в резервных копиях теряются расширенные списки контроля доступа.
Есть ли какое-то общепринятое и нехакерское решение (например, создать скрипт, который перепишет списки ACL с нуля) для сохранения списков ACL?
решение1
На самом деле, я думаю, что вопрос был не о (стандартных) битах разрешений файла, а орасширенныйИнформация ACL (см. setfacl(1) или acl(5)).
Насколько мне известно, неизмененный GNU tar игнорирует информацию ACL. (На странице руководства для GNU tar 1.15.1, поставляемой с RHEL 5.2, упоминаются ключи --acls и --no-acls, но мне не удалось заставить их работать.)
Однакозвездапрограмма может создавать резервные копии и восстанавливать списки контроля доступа, если вы выберетеэксустарформат:
star -c -p -acl artype=exustar -f archive.tar files...
star -x -acl -f archive.tar
Домашняя страница звезды:http://cdrecord.berlios.de/new/private/star.html Star доступен, по крайней мере, в Ubuntu.
решение2
Я тоже ищу решение, пока что нашел вот это:
сначала сделайте getfactl из моей папки
getfacl -R /a_folder > folder.acl
затем сделайте обычный tar
tar -czvf folder.tar.gz /a_folder
когда я его извлекаю
tar -xvf folder.tar.gz
выполните команду setfacl для разрешений.
setfacl --restore=folder.acl
Мне это подходит.
решение3
Использование тара
Создавать:
tar --acls -cpf backup.tar some-dir-or-file
Чтобы распаковать:
tar --acls -xpf backup.tar
решение4
Я предлагаю вам использоватьbsdtar
.
bsdtar
резервное копирование расширенного ACL по умолчанию, он используеттот же синтаксискак GNU tar
, и создаваемые им архивы доступны для чтения GNU tar
.
Имя пакета и команды (в дистрибутивах на базе Debian) — bsdtar
.
bsdtar cf archive.tar /my/folder/using/extd_acl
bsdtar xf archive.tar
Вторая команда (извлечение) восстанавливает списки ACL.