诊断下载的错误类型文件
正如steeldriver所说,这意味着该文件实际上不是一个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。这实际上不仅仅是一个迹象 - 通过这个你可以相当确定你没有得到一个真正的压缩文件。
你还可以使用 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="/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
john-1.7.0.2.tar.gz: HTML文档,ASCII文本,具有非常长的行
。 - steeldriver