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 , це означає, що файл насправді не є gzipped tar-файлом - або будь-яким типом gzipped-файлу - незважаючи на те, що його називають таким.

Під час завантаження файлу 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. Це насправді більше, ніж знак - ви можете бути впевнені, що ви не отримали справжнього gzipped файла на основі цього.

Ви також можете скористатися 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.