O tar preserva as permissões se os IDs dos usuários mudarem?

O tar preserva as permissões se os IDs dos usuários mudarem?

Preciso fazer backup de alguns dados com a opção “p” no comando tar. O problema é que o local onde irei restaurar esses dados terá todos os mesmos usuários, mas esses usuários podem ter IDs diferentes. Isso faz alguma diferença para o tar ou restaurará as permissões corretamente por nome de usuário?

Responder1

tarregistra permissões com base no UID e GID, não na string associada a eles. Portanto, se o UID em um servidor era 3300 e estava vinculado a 'bob', no novo servidor o arquivo pertencerá ao usuário que possui o UID 3300.

Tudo virtual (quero dizer tudo, mas você nunca pode ter 100% de certeza) no UNIX usa os valores UID:GID, porque é isso que está realmente armazenado no nível do sistema de arquivos. O nome é apenas uma simples pesquisa no arquivo passwd, as verificações subjacentes são feitas usando valores numéricos.

Responder2

Resumindo as respostas anteriores e acrescentando algumas informações importantes:

  • Ao criar arquivos, tarsempre preservará o ID do usuário e do grupo dos arquivos,a menos quedisse o contrário com --owner=NAME,. --group=NAMEEm ambos os casos, cada arquivo terá sempre um associadonuméricoID do usuário e do grupo.

  • GNU tar, e talvez outras versões do tar,tambémarmazenar o usuário e o gruponomes, a menos que --numeric-ownerseja usado. bsdtartambém armazena nomes de usuários e grupos por padrão, mas não tinha suporte para --numeric-owneropção quandocriandoarquivos até a versão 3.0 (observe que ele suportava a opção quandoextraindoarquivos há muito mais tempo).

  • Ao extrair comousuário normal, todos os arquivos serãosempreser propriedade do usuário. E não pode ser diferente, pois extrair um arquivo significa criar um novo no sistema de arquivos, e um usuário comum não pode criar um arquivo e ceder a propriedade a outra pessoa.

  • Ao extrair comoraiz, tarirá, por padrão, restaurar a propriedade dos arquivos extraídos,a menos que --no-same-owneré usado, o que dará propriedade ao próprio root.

  • No GNU tar, bsdtar e talvez em outras versões do tar, a propriedade restaurada é feita pelo usuário (e grupo)nome, se essa informação estiver no arquivoeexiste um usuário correspondente no sistema de destino. Caso contrário, ele restaura por ID. Se --numeric-ownera opção for fornecida, os nomes de usuários e grupos serão ignorados e os IDs serão usados. Em ambos os casos, sempre que IDs numéricos são usados, um usuário e grupo correspondente nãonãoprecisa existir no sistema.

  • Permissões e carimbos de data/hora também são salvos no arquivo e restaurados por padrão, a menos que opções --no-same-permissionse/ou --touchsejam usadas. Quando extraído pelo usuário, o do usuário umaskésubtraídodas permissões, a menos que --same-permissionsseja usado.

  • --preserve-permissionse --same-permissionssão aliases e têm a mesma funcionalidade que-p

Espero que isso ajude a esclarecer o problema! :)

Responder3

Se você estiver tentando transferir arquivos entre dois sistemas, o rsync definirá por padrão as permissões por nome de usuário em vez de uid, observando os nomes de usuário em ambas as extremidades. Somente se o usuário não existir em um dos sistemas ele o copiará com o uid, a menos que você indique o contrário.

Responder4

Use a opção --same-owner para GNU tar. Verhttp://www.gnu.org/software/tar/manual/html_section/Attributes.html

informação relacionada