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

10

Когда я запускаю:

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
    
задан Red fusion team 28.01.2017 в 18:06
источник

1 ответ

14

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

Как steeldriver говорит , это означает, что файл не на самом деле gzipped tar-файл - или любой вид gzip-файла - несмотря на то, что его называют похожим.

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

[email protected]:~$ 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 , которая проверяет файл и сообщает, какой файл он выглядит:

[email protected]:~$ 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 :

[email protected]:~$ 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="/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">

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

[email protected]:~$ head john-1.8.0.tar.gz
WӦQ♥john-1.8.0.tar ▒▒kw▒ر&▒▒ٿ▒▒▒▒4E]|▒v▒NF▒d[▒n▒▒▒L&▒HB▒$▒ ▒df͚▒▒▒▒▒ꩪ▒[email protected]▒▒▒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▒▒▒[email protected]♣▒*~▒▒▒ 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▒▒ߪ▒▒▒▒▒▒▒▒▒▒_♠▒-▒

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

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

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

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

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

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

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

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

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

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

[email protected]:~$ 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 соглашается:

[email protected]:~$ 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

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

[email protected]:~$ tar xf john-1.8.0.tar.gz
[email protected]:~$ cd john-1.8.0/
[email protected]:~/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:

[email protected]:~$ 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.

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

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

sudo apt update
sudo apt install john
    
ответ дан Eliah Kagan 29.01.2017 в 05:41