Se eu alterar permissões em um arquivo tar, isso se aplicará aos arquivos dentro dele?

5

Eu tenho um script que é executado regularmente via cron , que cria um arquivo tar.gz com o objetivo de fazer o backup de um diretório.

Por motivos fora do meu controle, o único usuário que pode executar o script via cron é um usuário raiz. Portanto, o arquivo tar resultante não pode ser movido ou excluído por nenhum outro usuário.

Portanto, como parte do script, quero executar um chown e chmod no arquivo tar para que outros usuários possam manipulá-lo.

Mas é bom o suficiente apenas alterar permissões no arquivo tar , ou as permissões do usuário root também serão salvas nos arquivos dentro do tar ? Quando um usuário descompacta o arquivo tar , ele poderá atuar nesses arquivos como se eles próprios criassem os arquivos?

    
por Questioner 23.04.2012 / 10:55

2 respostas

8

Se a extração do usuário for um usuário "comum", os arquivos pertencerão a esse usuário (por padrão).

Da página de manual do tar

--same-owner
       try extracting files with the same ownership as exists in the archive (default for superuser)

--no-same-owner
       extract files as yourself (default for ordinary users)
    
por 23.04.2012 / 11:44
7

Resposta curta: Não.

O utilitário tar é feito especialmente para arquivar estruturas de diretório em sistemas semelhantes a unix. Ele preserva todas as informações de propriedade e permissão dos arquivos / diretórios incluídos¹. Independentemente do usuário executando o comando tar .

Pelo menos, este é o caso da invocação padrão. Mas presumo que, se você exercitasse quaisquer opções avançadas de tar que pudessem mudar o tratamento de permissões, você não teria feito essa pergunta:)

¹ Uma exceção: o tar regular não preserva as configurações ou os comandos do SELinux. Você precisa de star ou uma versão recente de tar para preservá-los. Veja também link . Pode ser necessário levar isso em consideração se os arquivos de backup tiverem atributos estendidos.

    
por 23.04.2012 / 11:42