Eu tenho um colega de trabalho que diz que você precisa ter cuidado ao extrair tarballs porque eles podem fazer alterações que você não conhece. Eu sempre pensei que um tarball era apenas uma hierarquia de arquivos compactados, então se você extraí-lo para /tmp/example/ ele não pode colocar um arquivo em /etc/ ou qualquer coisa assim.
relate perguntas
-
significado de traços nus neste exemplo de curl/tar
-
diretório tar para enviar apenas blocos modificados de arquivos
-
Dois pontos (..) ou dois traços (--) como delimitador nos nomes de arquivos e diretórios
-
Em Solaris; encontrar, anexar a uma bola de alcatrão e comprimir a pergunta
-
bsdtar: Como evitar sobrescrever as informações do arquivo existente?
Diferentes utilitários tar se comportam de maneira diferente a esse respeito, então é bom ter cuidado. Para um arquivo tar que você não criou, sempre liste o índice antes de extraí-lo.
Solaris alcatrão :
No caso de um arquivo tar com nomes de caminho completos (absolutos), como:
... se você extrair um arquivo desse tipo, acabará com os dois arquivos.
GNU tar :
... se você extrair um arquivo tar com caminho completo usando o GNU tar sem usar a
-P
opção, ele informará:e irá extrair o arquivo em subdiretórios do seu diretório atual.
AIX alcatrão :
não diz nada sobre isso e se comporta como o tar do Solaris -- ele criará e extrairá arquivos tar com nomes de caminho completos/absolutos.
HP-UX tar : (melhor referência on-line bem-vinda)
Tar do OpenBSD :
Existem
-P
opções implementadas paratar
macOS, FreeBSD e NetBSD também, com a mesma semântica, com a adição de quetar
no FreeBSD e no macOS "se recusarão a extrair entradas de arquivo cujos nomes de caminho contenham..
ou cujo diretório de destino seja alterado por um link simbólico" sem-P
.estrela schilytools :
Uma das coisas hilárias que acontecem com os tar bombs é que eles mudam as permissões do diretório atual para o incluído no tarball.
Por exemplo, se um tarball inclui o '.' diretório, e você descompactá-lo em /tmp como root, ele destruirá seu sistema tornando o /tmp não gravável por qualquer pessoa, exceto root.