Propriedade e permissões são duas coisas diferentes. O -p
flag preserva permissões . Nos sistemas * nix, os usuários comuns não podem alterar a propriedade do arquivo para um usuário que não seja ele mesmo.
Como explicado aqui :
Somente processos com um ID de usuário efetivo igual ao ID do usuário do arquivo 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.
Alterar o ID do grupo é permitido para um processo com um ID de usuário efetivo igual ao ID do usuário do arquivo, mas sem privilégios apropriados, se e somente se owner for igual ao ID do usuário do arquivo ou (uid_t) -1 e grupo é igual ao ID de grupo efetivo do processo de chamada ou a um de seus IDs de grupo suplementares.
O raciocínio por trás disso foi explicado de forma satisfatória por @Gilles em este Unix & amp; Resposta do Linux:
O motivo dessa restrição é que doar um arquivo para outro usuário pode permitir que coisas ruins aconteçam em algo incomum, mas ainda assim importante situações. Por exemplo:
- Se um sistema tiver cotas de disco habilitadas, Alice poderia criar um arquivo gravável do mundo em um diretório acessível somente por ela (portanto, não outra pessoa poderia acessar esse diretório gravável pelo mundo) e, em seguida, executar chown para fazer esse arquivo pertencente a outro usuário Bill. O arquivo seria em seguida, conte sob a cota de disco de Bill, embora apenas Alice possa usar o arquivo.
- Se Alice distribuir um arquivo para Bill, não há nenhum rastro de que Bill não tenha criado esse arquivo. Isso pode ser um problema se o arquivo contiver dados ilegais ou de outra forma comprometedores.
- Alguns programas exigem que seu arquivo de entrada pertença a um usuário específico para autenticar uma solicitação (por exemplo, arquivo contém algumas instruções que o programa executará em em nome desse usuário). Isso geralmente não é um projeto seguro, porque mesmo se Bill criou um arquivo contendo sintaticamente correto instruções, ele pode não ter pretendido executá-las neste Tempo particular. No entanto, permitindo que Alice crie um arquivo com conteúdo arbitrário e tê-lo tomado como entrada de Bill só pode fazer coisas piores.
Portanto, mesmo se você usar o sinal --same-owner
do tar, ainda precisará extrair os arquivos como root
para preservar a propriedade. Esse sinalizador está ativado por padrão para root
, então o que você quer é:
sudo tar xpf foo.tgz