Ir para o conteúdo
AZ Tools

Inspetor de arquivos TAR

Lê os cabeçalhos de 512 bytes dentro de um arquivo tar e mostra a listagem completa antes de você desempacotar qualquer coisa: o caminho de cada entrada, se é um arquivo, diretório, link simbólico ou link físico, os bits de permissão do Unix nas formas rwx e octal, o dono e o grupo como nomes e como números, o tamanho, a data de modificação e, nos links, para onde apontam. Ele lida com os formatos que o tar realmente escreve, e não só com o mais simples: v7 puro, POSIX ustar com seu campo de prefixo de 155 bytes, os cabeçalhos de nome longo do GNU e os cabeçalhos estendidos PAX, que substituem os campos de largura fixa por valores UTF-8 e são a única razão de um caminho com mais de 255 bytes ou um horário com frações de segundo sobreviver. A soma de verificação de cada cabeçalho é conferida, então um arquivo corrompido ou que não seja tar é recusado em vez de produzir uma lista de bobagens com aparência plausível, e um arquivo cortado no meio de um cabeçalho é sinalizado em vez de listado em silêncio como se estivesse inteiro. O motivo para olhar antes de extrair é que entradas de tar podem nomear caminhos fora do diretório em que você está. Uma entrada com barra inicial, um caminho contendo .., ou um link simbólico apontando para um caminho absoluto podem largar arquivos onde você não pretendia; o GNU tar remove os dois primeiros e avisa, mas muito código de extração em outras linguagens não faz isso. Tudo isso é sinalizado, assim como o arquivo que se desempacota em mais de uma entrada de primeiro nível e espalha o conteúdo pelo seu diretório de trabalho. Tudo roda no seu navegador: o arquivo nunca é enviado.

Como usar

  1. Arraste um arquivo .tar, .tar.gz ou .tgz para a caixa, ou clique para escolher. Arquivos comprimidos com gzip são descomprimidos antes, no navegador.
  2. Veja a linha de formato para saber qual variante do tar o escreveu — v7, ustar, gnu ou pax — já que isso determina quais campos são confiáveis.
  3. Percorra a tabela até a entrada que interessa: permissões e dono aparecem exatamente como o tar -tv imprimiria.
  4. Confira tudo o que estiver destacado em âmbar antes de extrair; essas entradas podem escrever fora do diretório onde você desempacotar.
  5. Se o arquivo for recusado, a soma de verificação de um cabeçalho falhou: ele está corrompido, truncado, ou não é um tar.

Perguntas frequentes

Por que um arquivo tar precisa de soma de verificação se não é comprimido?
Cada cabeçalho de 512 bytes carrega uma soma simples dos próprios bytes, calculada tratando o campo da soma como espaços. Não é uma verificação forte de integridade e cobre apenas o cabeçalho, não o conteúdo, mas basta para distinguir um cabeçalho de verdade de dados aleatórios. É isso que permite percorrer um arquivo: num tar não há índice central, então o único jeito de achar a próxima entrada é confiar no tamanho do cabeçalho atual e pular. Se a soma falhar, esta ferramenta para, em vez de pular para um deslocamento arbitrário e inventar entradas com os bytes que encontrar lá.
Qual a diferença entre v7, ustar, gnu e pax?
São quatro gerações do mesmo cabeçalho de 512 bytes. O v7 é o original e só tem espaço para um nome de 100 caracteres — sem nomes de dono, sem caminhos longos. O ustar (POSIX.1-1988) acrescentou a string mágica, os nomes de usuário e grupo e um campo de prefixo de 155 bytes, de modo que um caminho chega a 255 caracteres se por sorte se dividir numa barra no lugar certo. O GNU tar resolveu nomes longos de outro jeito, escrevendo um cabeçalho extra cujo conteúdo é o nome real. O pax (POSIX.1-2001) generalizou isso em registros chave=valor capazes de levar qualquer campo em UTF-8, incluindo caminhos de qualquer tamanho, horários com frações e uids grandes. O GNU tar moderno usa pax por padrão quando um valor não cabe.
O que é um tarbomb e por que ele é sinalizado?
Um tarbomb é um arquivo cujas entradas não ficam sob um único diretório de primeiro nível, então extraí-lo na sua pasta atual espalha arquivos soltos por ela em vez de criar um diretório organizado que você possa apagar. Costuma ser descuido mais do que má intenção, mas a limpeza é genuinamente chata: você tem de ler a listagem para saber quais dos arquivos que agora estão no seu diretório vieram do pacote. Como esta ferramenta já tem a listagem, ela avisa de antemão. A solução na hora de extrair é tar -xf archive.tar -C um-diretorio-novo, que confina o conteúdo seja ele qual for.
Um arquivo tar pode sobrescrever arquivos fora da pasta onde eu extraio?
Pode tentar, de três maneiras, e esta ferramenta sinaliza as três. Uma entrada cujo nome começa com barra é um caminho absoluto. Uma entrada cujo nome contém .. sobe para fora do diretório de extração. Um link simbólico ou físico cujo destino seja absoluto ou contenha .. permite que uma entrada posterior do mesmo arquivo escreva através dele em outro lugar. O GNU tar se defende disso por padrão — remove barras iniciais e recusa extrair através de caminhos com .. — mas bibliotecas de manipulação de arquivos em outras linguagens frequentemente não o fazem, e daí veio uma longa série de vulnerabilidades de path traversal. Olhar a listagem primeiro não custa nada.
Meu arquivo é enviado para algum lugar?
Não. O arquivo é lido com o FileReader do próprio navegador, analisado em JavaScript nesta página e nunca enviado a lugar nenhum; a descompressão gzip também acontece localmente. Você pode verificar do jeito direto: carregue a página, desconecte-se da rede e solte um arquivo — continua funcionando. Nada sobre o arquivo, nem mesmo o nome, sai da sua máquina.
Por que não consigo ver nem baixar o conteúdo dos arquivos?
Esta ferramenta lê a listagem, não a carga útil: ela caminha de cabeçalho em cabeçalho de propósito, sem reter o conteúdo das entradas, e é isso que evita que um arquivo de vários gigabytes precise caber numa aba do navegador para ser listado. Se você quer o conteúdo de uma entrada, tar -xf archive.tar caminho/dentro/do/arquivo extrai só aquele caminho, e tar -Oxf archive.tar caminho imprime na saída padrão sem gravar arquivo algum.

Ferramentas relacionadas