gzip: stdin: não está no formato gzip

26

Quando eu corro:

tar -zxvf john-1.7.0.2.tar.gz

Eu entendi isso:

gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now

Deve começar a desembalar.

Algumas pessoas me disseram para não usar o, zmas eu recebo o mesmo erro.

É um arquivo que eu baixei desta maneira:

wget http://openwall.com/john/f/john-1.7.0.2.tar.gz
Equipe de fusão vermelha
fonte
4
O link que você postou parece ser uma página da web não um arquivo real:john-1.7.0.2.tar.gz: HTML document, ASCII text, with very long lines
steeldriver

Respostas:

25

Diagnosticando um arquivo baixado do tipo errado

Como o steeldriver diz , isso significa que o arquivo não é realmente um arquivo tar compactado com gzip - ou qualquer tipo de arquivo compactado com gzip - apesar de ser nomeado como um.

Quando você baixa um arquivo wget, geralmente há indicações de que você acabou recebendo um tipo de arquivo diferente do que estava procurando:

ek@Io:~$ wget http://openwall.com/john/f/john-1.7.0.2.tar.gz
--2017-01-28 23:57:33--  http://openwall.com/john/f/john-1.7.0.2.tar.gz
Resolving openwall.com (openwall.com)... 195.42.179.197
Connecting to openwall.com (openwall.com)|195.42.179.197|:80... connected.
HTTP request sent, awaiting response... 301 Moved Permanently
Location: http://www.openwall.com/john/ [following]
--2017-01-28 23:57:40--  http://www.openwall.com/john/
Resolving www.openwall.com (www.openwall.com)... 195.42.179.202
Connecting to www.openwall.com (www.openwall.com)|195.42.179.202|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: ‘john-1.7.0.2.tar.gz’

john-1.7.0.2.tar.gz                          [      <=>                                                                        ]  15.27K  3.61KB/s    in 4.2s

2017-01-28 23:57:51 (3.61 KB/s) - ‘john-1.7.0.2.tar.gz’ saved [15633]

Nesse caso, os principais sinais são:

  • A 301 Moved Permanentlymensagem, redirecionando para um endereço com um final /. Isso carrega a página padrão de algum diretório no servidor, que geralmente é index.htmlquase sempre um arquivo HTML.
  • Length: unspecified [text/html], informando que você está recebendo texto sem formatação ( text) e que ele deve ser interpretado como html. Isso é realmente mais do que um sinal - você pode ter certeza de que não obteve um arquivo compactado de verdade com base nisso.

Você também pode usar o fileutilitário, que examina um arquivo e informa que tipo de arquivo ele parece ser:

ek@Io:~$ file john-1.7.0.2.tar.gz
john-1.7.0.2.tar.gz: HTML document, ASCII text, with very long lines

E, claro, você pode examinar o arquivo, com ferramentas como head, less, e view:

ek@Io:~$ head john-1.7.0.2.tar.gz
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
<TITLE>John the Ripper password cracker</TITLE>
<link href="/ubuntu//style.css" type="text/css" rel="stylesheet">
<META name="keywords" content="John the Ripper, password cracker, JtR, password checker, password recovery, password, cracker, crackers, cracking, crack, crypt, passwd, shadow, Unix, Linux, Windows, Win32, Mac OS X, Mac OSX, MacOS X, OS X, OSX, DOS, VMS, OpenVMS, hash, DES, MD5, Blowfish, Kerberos, AFS, LM, LanMan, LanManager, NT, 2000, XP, 2003, Vista, 7, NTLM, NTLMv1, MD4, Netscape LDAP, SHA, SSHA, MySQL, TGT, s/key, Eggdrop, Apache, apr1, SYSUAF, SYSUAF.DAT, AltiVec, MMX, SSE, SSE2, AVX, XOP, wordlist, wordlists, dictionary, brute force, decrypt, challenge, response, John, Ripper, john, jhon, jonh, jack, Jack the Ripper">
<META name="description" content="A fast password cracker for Unix, Windows, DOS, and OpenVMS, with support for Unix, Windows, and Kerberos AFS passwords, plus a lot more with contributed patches">
</HEAD>

<BODY bgcolor="#E0E0E0" text="black" link="blue" alink="red" vlink="navy">

Se esse fosse realmente um arquivo binário, você teria recebido um monte de lixo sem sentido, pois qualquer pager ou visualizador que você usa sem sucesso tenta interpretar algo como texto simples que realmente não é. Por exemplo, no arquivo correto:

ek@Io:~$ head john-1.8.0.tar.gz
WӦQ♥john-1.8.0.tar ▒▒kw▒ر&▒▒ٿ▒▒▒▒4E]|▒v▒NF▒d[▒n▒▒▒L&▒HB▒$▒ ▒df͚▒▒▒▒▒ꩪ▒7@▒▒▒9ӳf▒▒J▒m     ▒ؗ▒u▒▒~,▒ї▒▒▒ˣ▒▒ӣ_▒▒▒▒C▒▒|▒▒▒▒▒şw▒v▒▒>▒|w▒▒▒}▒▒▒ί▒▒i9▒?7+▒gY7i▒$▒▒ʲ▒▒s?▒J'MV%▒rY4ur[▒4▒▒e▒▒.▒▒▒▒▒&/u▒-2▒W▒▒V▒▒!o▒0b▒▒▒♥▒|Q▒4▒▒▒&▒▒Y1Y▒F▒▒Iy▒▒▒▒$▒▒▒▒,▒]▒h▒▒8▒"▒▒M▒,Һ~(▒i▒4Y▒d▒QgQ▒*ۚf7yA▒.▒&i▒<d▒↓▒7▒H_-l▒7▒▒▒Z▒▒.m▒▒ʒ%F,▒۬▒*▒▒hrW▒cY▒▒
▒+▒O1▒-y>▒▒J▒yM?▒4I▒▒▒kYS▒▒:▒▒n▒C▒▒%▒▒▒v▒▒▒{[[tN▒9▒▒▒kA▒▒▒▒▒/[▒▒▒▒u▒▒▒z▒▒▒▒>▒▒5▒▒▒▒t▒t▒▒Y6Û<▒*/i▒i{K>▒,▒▒▒▒▒;9)▒Z.mJSeiLB▒▒▒▒▒j▒▒eQ緅▒_▒α▒Ŋ▒▒▒W▒▒▒▒▒_▒▒ˢ▒▒-q▒<gyw͍▒9▒?▒,▒▒▒▒h&▒V"▒▒▒▒▒▒▒l▒▒3▒▒▒▒\▒▒i#▒▒综▒◄0▒▒▒.e♠>a▒▒▒▒▒▒$klt:▒▒rA▒M▒'F▒R▒▒▒▒Lo▒♥1z▒\▒↓X▒▒▒P"֕▒▒▒♦▒▒▒▒|▒▒▒▒▒▒1I▒o"'#|6e▒▒t▒Ц▒FVL▒▒S▒ޓ▒▒;▒x▒▒▒▒▒▒▒QVrr▒▒▒9O▒W7▒♠Og▒
▒▒▒8▒▒/▒▒dm▒FG'▒'t2L▒▒&L▒Y:▒▒▒▒▒4▒rI<▒#▒+▒je▒▒▒>T9▒▒M▒XE-ʆ▒▒'n▒▒$↑▒m▒W▒▒w̕▒▒m▒n%▒|A_▒yGp↑D▒↓߻▒▒▒i▒▒}ӡH▒▒▒▒׍$$H▒▒&▒▒4▒▒▒Z-@♣▒*~▒▒▒ y6▒▒▒`▒v↓▒s▒+̱▒?▒1▒▒▒<▒>▒^▒▒Y#k▒
7`N'▒o▒.&▒▒(▒Դ~AD▒"E◄' lq▒`▒▒`▒[▒9◄▒▒wzuK▒N▒▒Y▒▒%or▒▒)▒▒i↓▒▒▒l5.S▒޶r▒_*▒RO▒{▒$▒(▒▒▒▒C▒·▒▒׀f2ˊ[:▒▒▒,|ew▒▒▒Ag▒'▒▒▒H▒▒t▒{͓▒▒▒▒JH˭s▒)g▒ON▒▒eŚQ▒▒▒♠ s▒▒ߪ▒▒▒▒▒▒▒▒▒▒_♠▒-▒

(Apenas copiei o começo disso.)

Obtendo o arquivo certo

Isso mostra como descobrir o que deu errado nessas situações (e, neste caso, em particular). Mas como você realmente encontra e baixa o arquivo correto ?

Isso varia de situação para situação. No entanto, um bom começo é:

  • Vá para o site oficial do software e veja se eles fornecem links para download. Mesmo que tenha sido assim que você obteve o link que está usando originalmente, se já passou algum tempo, você pode descobrir que o link foi alterado.

    Por exemplo, neste caso em particular, a versão atual é 1.8.0 em vez de 1.7.0.2 (e fornecida no jsubdiretório em vez de f) e a versão antiga não está mais disponível no mesmo URL.

  • Vá para a página para a qual você foi redirecionado quando baixou o arquivo. Nesse caso, é: http://www.openwall.com/john/

    Ou você pode até examinar o arquivo que foi baixado. (Ou abra -o em um navegador da Web.)

Você foi redirecionado para a página principal de download do software . Você pode fazer o download em um navegador da Web ou copiar um link de download atual correto e fazer o download com ele wget. Existem algumas opções, mas supondo que você não precise da versão antiga específica que estava tentando baixar e, com base no arquivo específico que tentou baixar, desconfio http://openwall.com/john/j/ john-1.8.0.tar.gz é o que você está procurando.

Obviamente, os leitores que encontrarem este post mais tarde poderão descobrir que o link não funciona mais. Mas a abordagem demonstrada aqui para solucionar esse tipo de problema permanecerá válida.

ek@Io:~$ wget http://openwall.com/john/j/john-1.8.0.tar.gz
--2017-01-29 00:16:19--  http://openwall.com/john/j/john-1.8.0.tar.gz
Resolving openwall.com (openwall.com)... 195.42.179.197
Connecting to openwall.com (openwall.com)|195.42.179.197|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 5450412 (5.2M) [application/x-tar]
Saving to: ‘john-1.8.0.tar.gz’

john-1.8.0.tar.gz                        100%[================================================================================>]   5.20M  78.8KB/s    in 26s

2017-01-29 00:16:47 (202 KB/s) - ‘john-1.8.0.tar.gz’ saved [5450412/5450412]

Eu baixei o arquivo. Observe que, desta vez, nenhum redirecionamento indesejado aconteceu e o tipo é fornecido como em application/x-tarvez de text/html.

(Um redirecionamento HTTP nem sempre é ruim. É quando você é redirecionado para algo que não parece ser realmente o arquivo que você está procurando e que você deve suspeitar que seu download não foi realmente bem-sucedido.)

file concorda:

ek@Io:~$ file john-1.8.0.tar.gz
john-1.8.0.tar.gz: gzip compressed data, was "john-1.8.0.tar", last modified: Thu May 30 04:19:35 2013, max compression, from Unix

E descompacta com sucesso:

ek@Io:~$ tar xf john-1.8.0.tar.gz
ek@Io:~$ cd john-1.8.0/
ek@Io:~/john-1.8.0$ ls -l
total 12
drwxrwxr-x 2 ek ek 4096 Jan 29 00:22 doc
lrwxrwxrwx 1 ek ek   10 May 29  2013 README -> doc/README
drwxrwxr-x 2 ek ek 4096 Jan 29 00:22 run
drwxrwxr-x 2 ek ek 4096 Jan 29 00:22 src

(Você está certo de que não importa se você usar o z; ele ainda teria funcionado tar xzf, pois esse é o arquivo correto.)

Você pode prosseguir para criar o código fonte e instalar.

Lembre-se, você nem sempre precisa criar da fonte

Às vezes, você realmente deseja a versão mais recente de um programa, e ela não está nos repositórios do Ubuntu. Você pode tentar encontrar um PPA, mas se você não encontrar um em que realmente confie ou que forneça exatamente o que deseja, ou se deseja construí-lo com opções personalizadas, ou se você realmente gosta de construir a partir do código-fonte, construa a partir de O código fonte é uma técnica valiosa e útil.

Eu recomendo verificar pelo menos o software que está disponível nos repositórios oficiais do Ubuntu para o seu sistema. No meu sistema 16.04:

ek@Io:~$ apt show john
Package: john
Version: 1.8.0-2
Priority: optional
Section: admin
Origin: Ubuntu
Maintainer: Ubuntu Developers <[email protected]>
Original-Maintainer: Ruben Molina <[email protected]>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 452 kB
Depends: libc6 (>= 2.14), john-data (= 1.8.0-2)
Suggests: wordlist
Homepage: http://www.openwall.com/john/
Supported: 5y
Download-Size: 184 kB
APT-Sources: http://us.archive.ubuntu.com/ubuntu xenial/main amd64 Packages
Description: active password cracking tool
 John the Ripper is a tool designed to help systems administrators to
 find weak (easy to guess or crack through brute force) passwords, and
 even automatically mail users warning them about it, if it is desired.
 .
 Besides several crypt(3) password hash types most commonly found on
 various Unix flavors, supported out of the box are Kerberos AFS and
 Windows NT/2000/XP/2003 LM hashes, plus several more with contributed
 patches.

Existem várias outras maneiras de procurar pacotes. Muitas vezes, é útil usar a página da Web de pesquisa de pacotes do Ubuntu .

Como você tentaria instalar a versão 1.7.0.2, presumivelmente a versão 1.8.0 nos repositórios oficiais é recente o suficiente. (De fato, a versão 1.8.0 parece ser a mesma versão fornecida para download no site oficial.) Portanto, você pode realmente querer instalar isso:

sudo apt update
sudo apt install john
Eliah Kagan
fonte