web-dev-qa-db-ja.com

gzip:stdin:gzip形式ではありません

実行すると:

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
25
Red fusion team

間違ったタイプのダウンロードされたファイルの診断

steeldriver says のように、これはファイルが実際にはgzip圧縮されたtarファイルではないことを意味します。つまり、gzip圧縮されたファイルではありません。

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

そしてもちろん、headlessviewなどのツールを使用して、自分でファイルを調べることができます。

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

(その最初の部分をコピーしただけです。)

適切なファイルを取得する

これは、これらの状況(そしてこの場合は特に)で何がうまくいかなかったかを知る方法を示しています。しかし、実際にcorrectファイルを見つけてダウンロードするにはどうすればよいですか?

これは状況によって異なります。ただし、良いスタートは次のとおりです。

  • ソフトウェアの公式Webサイトにアクセスし、ダウンロードリンクが提供されているかどうかを確認します。それがあなたが元々使用しているリンクを取得する方法であったとしても、しばらく時間が経過した場合、リンクが変更されていることに気付くかもしれません。

    たとえば、この特定の場合、現在のバージョンは1.7.0.2ではなく1.8.0(jではなくfサブディレクトリで提供されます)であり、古いバージョンは同じURLで使用できなくなりました。

  • ファイルをダウンロードしたときにリダイレクトされたページに移動します。この場合、それは: http://www.openwall.com/john/

    または、ダウンロードしたファイルを調べることもできます。 (またはWebブラウザーでitを開きます。)

ソフトウェアのメインダウンロードページ にリダイレクトされました。 Webブラウザーでダウンロードするか、現在の正しいダウンロードリンクをコピーして、wgetでダウンロードできます。いくつかの選択肢がありますが、ダウンロードしようとしていた特定の古いバージョンを実際に必要としないと特定のファイルに基づいてdidダウンロードを試みますが、疑わしい http://openwall.com/john/j/john-1.8.0.tar.gz はあなたが探しているものです。

もちろん、後でこの投稿を見つけた読者は、thatリンクが機能しなくなっていることに気付くかもしれません。ただし、この種の問題をトラブルシューティングするためにここで示したアプローチは引き続き有効です。

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 <[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.

パッケージを検索する方法は他にもいくつかあります。多くの場合、 buntuパッケージ検索 Webページを使用すると便利です。

バージョン1.7.0.2をインストールしようとしたため、おそらく公式リポジトリのバージョン1.8.0で十分だと思われます。 (実際、1.8.0は公式Webサイトからダウンロードするために提供されたものと同じバージョンのようです。)本当にそれをインストールしたいだけかもしれません。

Sudo apt update
Sudo apt install john
22
Eliah Kagan