md5sum
Что делает команда md5sum в Linux
Команда md5sum в Linux используется для вычисления и проверки контрольных сумм MD5 (Message Digest 5) — 128-битных хешей, которые позволяют определить, был ли изменён файл. Эта утилита особенно полезна при передаче данных по сети или при скачивании больших архивов, где важно удостовериться, что файл не повреждён.
MD5-хеш — это строка из 32 шестнадцатеричных символов, уникально соответствующая содержимому файла. Даже минимальное изменение в файле полностью меняет хеш.
Пример вывода команды:
md5sum example.txt
Результат будет таким:
d41d8cd98f00b204e9800998ecf8427e example.txt
Здесь первая часть — контрольная сумма, вторая — имя файла.
Основные параметры команды md5sum
Команда md5sum в Linux имеет несколько полезных параметров, которые позволяют управлять вычислением и проверкой хешей. Ниже приведены основные и наиболее часто используемые опции.
1. Проверка контрольных сумм (-c, —check)
Если у вас есть файл с ранее сохранёнными хешами, можно проверить целостность всех указанных файлов:
md5sum -c checksums.md5
Файл checksums.md5 должен содержать строки формата:
d41d8cd98f00b204e9800998ecf8427e example.txt
Вывод будет содержать результат проверки:
example.txt: OK
md5sum -c, чтобы убедиться в подлинности файла.2. Режим только для чтения хеша без имени файла (-b, —binary)
Используется для вычисления контрольной суммы бинарных файлов. Например:
md5sum -b image.iso
Результат:
a906449d5769fa7361d7ecc6aa3f6d28 *image.iso
Звёздочка * указывает на бинарный режим. Это важно для файлов, где перевод строки может отличаться в зависимости от ОС.
3. Создание файла контрольных сумм
Для автоматизации проверки можно создать файл с хешами всех нужных файлов:
md5sum *.txt > checksums.md5
Теперь у вас есть текстовый файл со всеми контрольными суммами, который можно использовать для дальнейших проверок.
Примеры практического использования
Команда md5sum в Linux часто используется в DevOps, администрировании серверов, тестировании систем и при работе с архивами данных. Рассмотрим несколько практических примеров.
1. Проверка целостности скачанного архива
Допустим, вы скачали файл backup.tar.gz и вместе с ним — официальный хеш:
cat backup.tar.gz.md5
Результат:
e2fc714c4727ee9395f324cd2e7f331f backup.tar.gz
Теперь сравним с локальным хешем:
md5sum backup.tar.gz
Если хеши совпадают — файл не повреждён.
2. Проверка списка файлов в каталоге
Чтобы проверить целостность всех файлов сразу:
md5sum -c checksums.md5
Если какой-то файл был изменён или удалён, утилита сообщит об этом:
report.pdf: FAILED
md5sum: WARNING: 1 computed checksum did NOT match
md5sum в сочетании с cron для регулярной проверки файлов конфигурации на сервере. Это поможет вовремя обнаружить несанкционированные изменения.3. Использование в скриптах
Команда md5sum в Linux часто применяется в 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 остаётся достаточным. Однако для критически важных систем рекомендуется переходить на более современные алгоритмы хеширования.