gzip: stdin: не в формате gzip

26

Когда я бегу:

tar -zxvf john-1.7.0.2.tar.gz

Я получаю это:

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

Он должен начать распаковку.

Некоторые люди говорили мне не использовать, zно я получаю ту же ошибку.

Это файл, который я скачал следующим образом:

wget http://openwall.com/john/f/john-1.7.0.2.tar.gz
Красная команда фьюжн
источник
4
Похоже, что ссылка, которую вы разместили, является веб-страницей, а не архивом:john-1.7.0.2.tar.gz: HTML document, ASCII text, with very long lines
steeldriver

Ответы:

25

Диагностика загруженного файла неправильного типа

Как говорит Steeldriver , это означает, что файл на самом деле не является сжатым tar-файлом - или каким-либо другим образом сжатым файлом - несмотря на то, что он назван как один.

Когда вы загружаете файл с помощью wget, часто появляются признаки того, что вы получили файл другого типа, чем тот, который вы искали:

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]

В этом случае основными признаками являются:

  • 301 Moved PermanentlyСообщение, перенаправление на адрес с завершающим /. Это загружает страницу по умолчанию для некоторого каталога на сервере, который обычно index.htmlи почти всегда является HTML-файлом.
  • Length: unspecified [text/html], сообщая вам, что вы получаете простой текст ( text) и что он предназначен для интерпретации как html. Это действительно больше, чем знак - вы можете быть уверены, что не получили настоящий файл в формате gzip на основе этого.

Вы также можете использовать fileутилиту, которая проверяет файл и сообщает вам, каким файлом он выглядит:

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

И, конечно , вы можете просмотреть файл самостоятельно, с помощью таких инструментов, как head, lessи 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">

Если бы это был действительно бинарный файл, то вы бы получили вместо этого целую кучу бессмысленного мусора, поскольку любой пейджер или зритель, который вы используете, бесполезно пытается интерпретировать что-то как простой текст, который на самом деле таковым не является. Например, в правильном файле:

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▒▒ߪ▒▒▒▒▒▒▒▒▒▒_♠▒-▒

(Я только скопировал самое начало этого.)

Получение правильного файла

Это говорит вам, как выяснить, что пошло не так в этих ситуациях (и в данном случае, в частности). Но как на самом деле найти и загрузить правильный файл?

Это зависит от ситуации. Тем не менее, хорошим началом является:

  • Перейдите на официальный сайт для программного обеспечения и посмотрите, предоставляют ли они ссылки для скачивания. Даже если именно так вы и получили исходную ссылку, по прошествии некоторого времени вы можете обнаружить, что ссылка изменилась.

    Например, в данном конкретном случае текущей версией является 1.8.0 вместо 1.7.0.2 (и предоставляется в jподкаталоге вместо f), и старая версия больше не доступна по тому же URL-адресу.

  • Перейдите на страницу, на которую вы были перенаправлены при загрузке файла. В данном случае это: http://www.openwall.com/john/

    Или вы можете даже изучить файл, который был загружен. (Или откройте его в веб-браузере.)

Вы были перенаправлены на главную страницу загрузки программного обеспечения . Вы можете либо загрузить в веб-браузере, либо скопировать правильную текущую ссылку для скачивания и загрузить ее с помощью wget. Есть несколько вариантов, но если вы на самом деле не нужно , что конкретные старую версию , которую вы пытаетесь загрузить, и на основе конкретного файла вы сделали попытку загрузки, я подозреваю , http://openwall.com/john/j/ john-1.8.0.tar.gz - это то, что вы ищете.

Конечно, читатели, которые найдут этот пост позже, могут найти, что ссылка больше не работает. Но подход, продемонстрированный здесь для устранения проблем такого рода, останется в силе.

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]

Я скачал файл. Обратите внимание, что на этот раз не произошло нежелательного перенаправления, и application/x-tarвместо него указан тип text/html.

(HTTP-перенаправление не всегда плохо. Когда вы перенаправляетесь на что-то, что не похоже на тот файл, который вы действительно ищете, вы должны подозревать, что ваша загрузка действительно не удалась.)

file соглашается:

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

И он успешно распаковывается:

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

(Вы правы в том, что не имеет значения, используете ли вы z; с ним все равно будет работать tar xzf, поскольку это правильный файл.)

Вы можете приступить к сборке исходного кода и установке.

Помните, что вы не всегда должны строить из исходного кода

Иногда вам действительно нужна последняя версия программы, а ее нет в репозиториях Ubuntu. Вы можете попытаться найти PPA, но если вы не найдете того, кому действительно доверяете или который обеспечивает то, что вам нужно, или вы хотите создать его с помощью пользовательских опций, или вам просто очень нравится строить из исходного кода, то собирать из Исходный код является ценным и полезным методом.

Однако я рекомендую проверить, по крайней мере, программное обеспечение, которое доступно в официальных репозиториях Ubuntu для вашей системы. В моей системе 16.04:

ek@Io:~$ apt show john
Package: john
Version: 1.8.0-2
Priority: optional
Section: admin
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Ruben Molina <rmolina@udea.edu.co>
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.

Есть несколько других способов поиска пакетов. Часто удобно использовать веб-страницу поиска пакетов Ubuntu .

Поскольку вы собирались установить версию 1.7.0.2, предположительно версия 1.8.0 в официальных репозиториях достаточно свежая. (Действительно, 1.8.0, похоже, та же версия, что и для загрузки с официального сайта.) Так что вы действительно можете просто установить это:

sudo apt update
sudo apt install john
Элия ​​Каган
источник