O sudo tar altera a propriedade dos arquivos extraídos para usuário desconhecido

10

Estou executando este comando:

$ sudo tar xvzf nexus-latest-bundle.tar.gz

Os arquivos extraídos pertencem a um usuário desconhecido (1001):

drwxr-xr-x 8     1001     1001      4096 Dec 16 18:37 nexus-2.12.0-01
drwxr-xr-x 3     1001     1001      4096 Dec 16 18:47 sonatype-work

Não deveria ser root do proprietário em uma configuração normal?

Estou trabalhando em uma instalação linux replicada de uma AWS AMI.

raspacorp
fonte

Respostas:

15

Ao extrair arquivos como raiz, o tar usará a propriedade original. Você pode substituir isso usando a --no-same-owneropção (como alternativa -o).

Seu arquivo tar se refere ao usuário / grupo que não existe no sistema em que você o extraiu.

Se você extrair arquivos como você (um usuário não privilegiado), poderá criar apenas arquivos de sua propriedade.

O manual do tar GNU diz:

--same-owner
Ao extrair um arquivo, o tar tentará preservar o proprietário especificado no arquivo tar com esta opção presente. Esse é o comportamento padrão para o superusuário; essa opção tem efeito apenas para usuários comuns. Consulte a seção Manipulando atributos de arquivo .

Thomas Dickey
fonte
1
Ok, então isso acontece apenas quando é root, porque se eu executar o comando sem sudo: 'tar xzvf nexus-latest-bundle.tar.gz', a propriedade será definida como meu usuário atual, esse é um comportamento esperado?
Raspacorp
2
@raspacorp: Como usuário não root, você não tem autoridade para criar arquivos com outra propriedade além da sua. Portanto, por necessidade, os arquivos são criados com você como proprietário.
Nate Eldredge
1

A pessoa que criou o arquivo tar tinha um ID do usuário e ID do grupo (UID: GID) efetivos de 1001: 1001. Como tar, por padrão, preserva as propriedades e permissões, quando você o expande, herda esses valores. Se você tiver um usuário com UID: GID 1001: 1001 em seu sistema, esses arquivos pertencerão a esse usuário.

MelBurslan
fonte