【 md5sum 】コマンド――ダウンロードファイルを検証する:Linux基本コマンドTips(161)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、ダウンロードファイルを検証する「md5sum」コマンドです。
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、ダウンロードファイルを検証する「md5sum」コマンドです。
md5sumコマンドとは?
「md5sum」コマンドは、ファイルをダウンロード(コピー)した後に、破損や改変がないことを確認するために使うコマンドです。ファイルを読み込み、ハッシュ値を表示、照合できます ※1。
ファイルのダウンロード元やメッセージの送信元があらかじめ、ファイルなどのハッシュ値を計算、公開している場合があります。受け手側であらためてハッシュ値を算出し、2つの値が一致していれば、正しく受信できたことになります。
ハッシュ値は文字列やファイルの内容を基にして計算した値です。ハッシュ値を計算するハッシュ関数にはさまざまな種類があり、md5sumコマンドはMD5アルゴリズム(Message Digest Algorithm 5)に基づいて、128ビットのハッシュ値(32桁の16進数)を出力します ※2。
なお、現在はより安全性が高い方式を用いているsha256sumコマンド(連載第160回)の使用が推奨されています。使用方法はmd5sumと共通です。
md5sumコマンドの書式
md5sum [オプション] 対象ファイル (算出時)
md5sum -c ファイル [オプション] (照合時)
※[ ]は省略可能な引数を示しています。
md5sumの主なオプション
短いオプション | 長いオプション | 意味 |
---|---|---|
-b | --binary | バイナリモードで読み込む |
-t | --text | テキストモードで読み込む(デフォルト) |
-c ファイル | --check ファイル | ファイルからハッシュ値を読み込んで照合する(ファイル名として「-」を指定すると標準入力から読み込む:本文参照) |
-c(--check)とともに使用するオプション
短いオプション | 長いオプション | 意味 |
---|---|---|
--strict | 無効な設定行がある場合は0以外で終了する | |
--quiet | 照合が成功した場合はメッセージを表示しない | |
--status | 何も出力しない(終了コードで結果を判別する) | |
-w | --warn | ファイルの書式が不正な場合に警告する |
ファイルが正しくダウンロードできたかどうかを確認する
ダウンロード元のサイトにMD5の値が掲載されている場合、「md5sum 対象ファイル」で一致しているか確認します。
コマンド実行例
md5sum 対象ファイル
以下では、Oracle VM VirtualBox(VirtualBox)のインストール用パッケージと、MD5の値が書かれている「MD5SUMS」というファイルをダウンロードして、値を比較しています ※3。ダウンロードにはwgetコマンドを使用しています。
VirtualBoxのMD5SUMSファイルには40本近いファイルの値が書かれているため、「grep ダウンロードしたファイルの名前 MD5SUMS」で絞り込み表示をした後に、md5sumコマンドの実行結果を表示。一致しているかどうかを確認しました。
照合の方法についてはsha256sumコマンドを参照してください。コマンドの使用方法は共通です。
※3 Oracle VM VirtualBoxは、Oracleが開発、公開する仮想化ソフトウェア。LinuxなどのOSをインストールして、他のOS上で利用できる(VirtualBox関連のWebサイト)
※4 CentOSの場合、「grep」に対しデフォルトで「grep --color=auto」というエイリアスが設定されている。このためgrepの出力の一部が赤字で表示された。
筆者紹介
西村 めぐみ(にしむら めぐみ)
PC-9801NからのDOSユーザー。PC-486DX時代にDOS版UNIX-like toolsを経てLinuxへ。1992年より生産管理のパッケージソフトウェアの開発およびサポート業務を担当。著書に『図解でわかるLinux』『らぶらぶLinuxシリーズ』『はじめてでもわかるSQLとデータ設計』『シェルの基本テクニック』など。2011年より、地方自治体の在宅就業支援事業にてPC基礎およびMicrosoft Office関連の教材作成およびeラーニング指導を担当。
Copyright © ITmedia, Inc. All Rights Reserved.