Propriedade e permissões são duas coisas diferentes. O -p
sinalizador preserva permissões . Nos sistemas * nix, os usuários regulares não podem alterar a propriedade do arquivo para um usuário que não é ele próprio.
Como explicado aqui :
Somente processos com um ID do usuário efetivo igual ao ID do usuário ou com privilégios apropriados podem alterar a propriedade de um arquivo. Se _POSIX_CHOWN_RESTRICTED estiver em vigor para o caminho:
A alteração do ID do usuário é restrita a processos com privilégios apropriados.
É permitido alterar o ID do grupo para um processo com um ID do usuário efetivo igual ao ID do usuário do arquivo, mas sem privilégios apropriados, se e somente se o proprietário for igual ao ID do usuário do arquivo ou (uid_t) -1 e o grupo for igual ao ID do grupo efetivo do processo de chamada ou a um de seus IDs de grupo suplementares.
A lógica por trás disso foi bem explicada pelo @Gilles nesta resposta para Unix e Linux:
O motivo dessa restrição é que a distribuição de um arquivo a outro usuário pode permitir que coisas ruins aconteçam em situações incomuns, mas ainda importantes. Por exemplo:
- Se um sistema tiver cotas de disco ativadas, Alice poderá criar um arquivo gravável em mundo em um diretório acessível somente por ela (para que ninguém mais possa acessar esse diretório gravável em mundo) e, em seguida, executar chown para tornar esse arquivo pertencente a outro usuário Bill . O arquivo será contado na cota de disco de Bill, embora apenas Alice possa usá-lo.
- Se Alice distribuir um arquivo para Bill, não há vestígios de que Bill não criou esse arquivo. Isso pode ser um problema se o arquivo contiver dados ilegais ou comprometedores.
- Alguns programas exigem que seu arquivo de entrada pertença a um usuário específico para autenticar uma solicitação (por exemplo, o arquivo contém algumas instruções que o programa executará em nome desse usuário). Geralmente, esse não é um design seguro, porque, mesmo que Bill tenha criado um arquivo contendo instruções sintaticamente corretas, ele pode não ter a intenção de executá-las nesse momento específico. No entanto, permitir que Alice crie um arquivo com conteúdo arbitrário e recebê-lo como entrada de Bill só pode piorar as coisas.
Portanto, mesmo se você usar o --same-owner
sinalizador tar , você ainda precisará extrair os arquivos root
para preservar a propriedade. Esse sinalizador está ativado por padrão para root
, então o que você deseja é:
sudo tar xpf foo.tgz
tar
que não será capaz de fazê-lo também. Por favor me diga se isso funcionou.