md5sum

Что делает команда md5sum в Linux

Команда md5sum в Linux используется для вычисления и проверки контрольных сумм MD5 (Message Digest 5) — 128-битных хешей, которые позволяют определить, был ли изменён файл. Эта утилита особенно полезна при передаче данных по сети или при скачивании больших архивов, где важно удостовериться, что файл не повреждён.

MD5-хеш — это строка из 32 шестнадцатеричных символов, уникально соответствующая содержимому файла. Даже минимальное изменение в файле полностью меняет хеш.
Пример вывода команды:

Bash
md5sum example.txt

Результат будет таким:

Bash
d41d8cd98f00b204e9800998ecf8427e  example.txt

Здесь первая часть — контрольная сумма, вторая — имя файла.

Основные параметры команды md5sum

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

1. Проверка контрольных сумм (-c, —check)

Если у вас есть файл с ранее сохранёнными хешами, можно проверить целостность всех указанных файлов:

Bash
md5sum -c checksums.md5

Файл checksums.md5 должен содержать строки формата:

Bash
d41d8cd98f00b204e9800998ecf8427e  example.txt

Вывод будет содержать результат проверки:

Bash
example.txt: OK
Если вы скачали ISO-образ Linux-дистрибутива, всегда проверяйте его при помощи md5sum -c, чтобы убедиться в подлинности файла.

2. Режим только для чтения хеша без имени файла (-b, —binary)

Используется для вычисления контрольной суммы бинарных файлов. Например:

Bash
md5sum -b image.iso

Результат:

Bash
a906449d5769fa7361d7ecc6aa3f6d28 *image.iso

Звёздочка * указывает на бинарный режим. Это важно для файлов, где перевод строки может отличаться в зависимости от ОС.

3. Создание файла контрольных сумм

Для автоматизации проверки можно создать файл с хешами всех нужных файлов:

Bash
md5sum *.txt > checksums.md5

Теперь у вас есть текстовый файл со всеми контрольными суммами, который можно использовать для дальнейших проверок.

Примеры практического использования

Команда md5sum в Linux часто используется в DevOps, администрировании серверов, тестировании систем и при работе с архивами данных. Рассмотрим несколько практических примеров.

1. Проверка целостности скачанного архива

Допустим, вы скачали файл backup.tar.gz и вместе с ним — официальный хеш:

Bash
cat backup.tar.gz.md5

Результат:

Bash
e2fc714c4727ee9395f324cd2e7f331f  backup.tar.gz

Теперь сравним с локальным хешем:

Bash
md5sum backup.tar.gz

Если хеши совпадают — файл не повреждён.

2. Проверка списка файлов в каталоге

Чтобы проверить целостность всех файлов сразу:

Bash
md5sum -c checksums.md5

Если какой-то файл был изменён или удалён, утилита сообщит об этом:

Bash
report.pdf: FAILED
md5sum: WARNING: 1 computed checksum did NOT match
Используйте md5sum в сочетании с cron для регулярной проверки файлов конфигурации на сервере. Это поможет вовремя обнаружить несанкционированные изменения.

3. Использование в скриптах

Команда md5sum в Linux часто применяется в bash-скриптах для автоматизации. Например, чтобы проверить изменения в файле:

Bash
#!/bin/bash
hash_now=$(md5sum config.yaml | awk '{print $1}')
hash_old=$(cat last_hash.txt)

if [ "$hash_now" != "$hash_old" ]; then
  echo "Файл изменён!"
  echo "$hash_now" > last_hash.txt
fi

Такой скрипт удобно использовать для мониторинга конфигурационных файлов в системах, где важно отслеживать изменения.

Ограничения и безопасность алгоритма MD5

Хотя команда md5sum в Linux остаётся популярным инструментом, алгоритм MD5 считается криптографически устаревшим. Он уязвим к коллизиям — ситуациям, когда разные файлы могут иметь одинаковый хеш.
Поэтому для проверки безопасности и подлинности программного обеспечения лучше использовать более надёжные алгоритмы — sha256sum или sha512sum.

Тем не менее, для быстрой проверки целостности данных MD5 остаётся простым и удобным решением.

Параметры команды md5sum: краткая таблица

ПараметрНазначениеПример использования
-b, --binaryИспользовать бинарный режимmd5sum -b file.bin
-t, --textИспользовать текстовый режимmd5sum -t file.txt
-c, --checkПроверка хешей из файлаmd5sum -c list.md5
--quietНе выводить «OK» при успешной проверкеmd5sum -c --quiet list.md5
--statusВозвращает только код ошибкиmd5sum -c --status list.md5
--helpПоказать справкуmd5sum --help
--versionВерсия программыmd5sum --version

Заключительные замечания

Команда md5sum в Linux остаётся незаменимым инструментом для системных администраторов и разработчиков. Она проста в использовании, позволяет быстро проверять целостность файлов и создавать хеш-листы для автоматизированной проверки.

Для большинства задач, связанных с контролем изменений файлов, MD5 остаётся достаточным. Однако для критически важных систем рекомендуется переходить на более современные алгоритмы хеширования.