Symlinks e permissões em arquivos de backup

6

Instalei o linux em outro computador e quero mover meu diretório / home para esse computador. Eu quero fazer backup desse diretório com qualquer permissão de arquivo, links simbólicos etc. como devo fazer isso? Existe algum parâmetro para o tar gzip?

    
por piotrek 15.03.2014 / 15:25

1 resposta

10

Se você quer dizer que deseja incluir os arquivos para os quais os links simbólicos apontam, use -h .

tar -chzf foo.tar.gz directory/

As permissões e a propriedade são preservadas por padrão. Se você quiser apenas incluir os links simbólicos como links simbólicos, deixe de fora -h . Pequeno -z é para gzip.

Isso tudo está escrito em man tar ; você pode procurar termos (como "symlink") em man por meio da tecla de barra invertida / .

Quando você extrai o arquivo ( tar -xzf foo.tar.gz ), a propriedade só será preservada se você descompactar como root , caso contrário, todos os arquivos pertencerão a você. Isso é um recurso, pois, de outro modo, muitas vezes seria impossível para um usuário normal acessar arquivos em um arquivo que eles (por exemplo) baixam. As permissões modais (leitura / gravação / execução) permanecerão as mesmas. Se, como usuário comum, você quiser preservar a propriedade mesmo assim, poderá usar a opção -p (então tar -xzpf foo.tar.gz ).

No entanto, há um problema.

A propriedade de arquivos é, na verdade, armazenada como um número, não como um nome. o sistema relata nomes correlacionando-os com um valor de /etc/passwd . Você pode encontrar o número correspondente ao seu nome de usuário com:

grep yourusername < /etc/passwd

Que imprimirá algo como:

piotek:x:1001:1001::/home/piotek:/bin/bash

O primeiro número é o seu número de usuário, o segundo é o seu número de grupo (eles são geralmente os mesmos). Os outros campos são explicados em man 5 passwd (observe o 5 ).

Como consequência, se você extrair alguns arquivos e desempacotá-los em outro sistema como root, ou usar -p (para que a propriedade seja preservada), e houver um usuário nesse sistema cujo número de usuário seja 1001, os arquivos pertencerão a esse usuário, mesmo que seu nome não seja piotek (e mesmo que haja um usuário piotek no sistema com um número correspondente diferente).

A página tar man é um pouco confusa a esse respeito, já que se refere à opção -p como envolvendo permissões de arquivo . Essa é uma ambigüidade * nix comum em um contexto em que o estado dos bits de leitura / gravação / execução é chamado de modo .

    
por 15.03.2014 / 15:44