O que usar para fazer backup de arquivos, preservando ACLs?

24

Ao usar o utilitário tar para armazenar arquivos em backups, perde-se as ACLs estendidas.

Existe alguma solução comumente usada e não hackeada (como: criar um script que recrute as ACLs do zero) para preservar as ACLs?

seda
fonte
11
Veja também esta pergunta duplicada .
22413 Totor

Respostas:

4

Usando alcatrão

Para criar:

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

Para desarmar:

tar --acls -xpf backup.tar
Scott Grayban
fonte
3
tar: unrecognized option '--acls'não funciona.
maniat1k
11
O Fedora possui patches GNU Tar não padronizados que incluem--acls
user55149
3
No Debian, tarnão suporta --aclsaté Jessie. (Veja o bug # 732071. ) O recurso também está disponível no pacote em wheezy-backports.
Alastair Irvine
Observe que a wheezy-backportsversão dita tarpossui um bug na --aclsopção. A extração de tarball usando essa opção atribuirá ACLs, mesmo que o arquivo não possua (!). Veja aqui .
Digger
14

Na verdade, acredito que a questão não era sobre os bits de permissão de arquivo (padrão), mas informações estendidas da ACL (consulte setfacl (1) ou acl (5)).

Que eu saiba, o tar GNU não modificado ignora as informações da ACL. (A página de manual do GNU tar 1.15.1, fornecida com o RHEL 5.2, menciona os switches --acls e --no-acls, mas não consegui fazê-los funcionar).

No entanto, o programa estrela poderá fazer backup e restaurar ACLs, se você selecionar o formato exustar :

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

Página inicial da estrela: http://cdrecord.berlios.de/new/private/star.html A estrela está disponível no ubuntu, pelo menos.

bhm
fonte
Parece o que eu procuro, vou ter que dar uma olhada nisso. Agora eu preciso comprar mais algumas horas por dia;)
silk
3
starnão está disponível no Debian e não parece ser mantido por uma "equipe". O projeto ainda está vivo e mantido após mais de 30 anos. Tente bsdtarse você quiser algo mais.
22413 Totor
11
após o desligamento de belios você pode encontrá-lo aqui: sourceforge.net/projects/s-tar/files
Jonas Stein
9

Estou procurando uma solução também, até agora encontrei o seguinte:

primeiro faça um getfactl da minha pasta

getfacl -R /a_folder > folder.acl

então faça um alcatrão regular

tar -czvf folder.tar.gz /a_folder

quando eu extraio

tar -xvf folder.tar.gz

faça um setfacl para as permissões.

setfacl --restore=folder.acl

isso funciona para mim.

maniat1k
fonte
11
Obrigado. Nada funcionou para mim nesta página [eu realmente quis dizer isso, eu até compilei estrelas da fonte, mas não conseguiu fazer o trabalho]. Mas isso realmente funcionou. Embora não seja elegante, mas funciona perfeito.
ashishsony 2/11
5
rsync with the -A and/or -X options.
Skaperen
fonte
2

Se você está procurando uma solução simples de usar e poderosa, eu recomendo rdiff-backup.

Basicamente, ele faz uma cópia de um diretório de origem para um diretório de destino, mas também salva informações adicionais para que você possa voltar no tempo para quando quiser.

E, é claro, preserva links simbólicos, arquivos especiais, hardlinks, permissões, propriedade de uid / gid e tempos de modificação.

Pablo Antonio
fonte
2

Eu sugiro que você use bsdtar.

bsdtar backups estendida ACL por padrão , ele usa a mesma sintaxe como GNU tar, e os arquivos que ela produz são lidos por GNU tar.

O nome do pacote e do comando (em distribuições baseadas no Debian) é bsdtar.

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

O segundo comando (extração) restaura ACLs.

Totor
fonte
Não consigo fazê-lo funcionar, mesmo tendo certeza de que funcionou há algum tempo. Arquivado um bug, code.google.com/p/libarchive/issues/detail?id=329 .
Ambroz Bizjak
O mesmo aqui na verdade ... Eu tentei no Debian 8 Jessie e não funcionou. :(
Totor
Estou usando-o no Debian (x64, PC) há vários anos sem nenhum problema (wheezy, jessie e atualmente estendido em várias máquinas).
Binarus
1

A partir do piche Man Page.

-p, --same-Permissions, --preserve-Permissions
             ignoram umask ao extrair arquivos (o padrão para root)

Na verdade, não é o ato de arquivar que altera as permissões de acesso (ACLs), mas o ato de descompactá-las. O Tar é frequentemente usado para distribuir arquivos de um usuário para outro e, portanto, é conveniente aplicar umask aos usuários quando eles são descompactados.

Para preservar as permissões anteriores dos arquivos, basta ad ap para suas opções. Por exemplo

Alcatrão reto:

tar xvp some-file

bz.tar:

tar xvjp some-file

gz.tar:

tar xvzp some-file
Eli Frey
fonte
isso não funciona.
maniat1k
11
Além disso, o tar automaticamente descobre o que extrair. Não há necessidade de passar 'j' ou 'z'.
Boa Pessoa