sha256sum

Oblicza i weryfikuje sumy kontrolne SHA-256 plików.

sha256sum to narzędzie z pakietu GNU coreutils, które liczy sumę kontrolną SHA-256 dla plików i potrafi ją później zweryfikować. W praktyce używasz go do jednego z dwóch celów: sprawdzenia, czy pobrany plik (obraz ISO, archiwum, paczka) nie jest uszkodzony ani podmieniony, albo do wygenerowania odcisku palca, który zapiszesz na później. Suma to 64-znakowy ciąg heksadecymalny — jeśli zmienisz w pliku choćby jeden bit, wynik będzie zupełnie inny. To nie jest szyfrowanie, tylko integralność: ten plik jest dokładnie taki, jak się umawialiśmy.

Składnia i najważniejsze opcje

Podstawowa forma: sha256sum [opcje] [plik...]

  • -c, --check — zamiast liczyć, czyta sumy z podanego pliku i sprawdza, czy pasują do plików na dysku.
  • --ignore-missing — przy weryfikacji nie zgłasza błędu dla plików, których nie ma (przydatne, gdy lista sum obejmuje więcej niż masz lokalnie).
  • --quiet — przy weryfikacji nie wypisuje OK dla każdego pliku, tylko to, co się nie zgadza.
  • --status — nie wypisuje nic; wynik czytasz z kodu wyjścia (0 = wszystko pasuje). Idealne do skryptów.
  • --strict — kończy z błędem, jeśli w pliku z sumami trafią się źle sformatowane linie.
  • -b, --binary — czyta w trybie binarnym (domyślny jest tekstowy; na Linuksie różnica jest kosmetyczna).
  • --tag — generuje sumę w formacie w stylu BSD (SHA256 (plik) = ...).
  • -z, --zero — kończy każdą linię wyjścia znakiem NUL zamiast nowej linii; wygodne przy przekazywaniu do xargs -0.

Przykłady użycia

  • sha256sum linux.iso — liczy i wypisuje sumę pojedynczego pliku.
  • sha256sum *.zip > sumy.txt — zapisuje sumy wszystkich archiwów do pliku, żeby móc je potem zweryfikować.
  • sha256sum -c sumy.txt — sprawdza wszystkie pliki wymienione w sumy.txt i wypisuje OK lub FAILED przy każdym.
  • echo "abc123... linux.iso" | sha256sum -c - — weryfikuje jeden plik, podając oczekiwaną sumę na standardowym wejściu (myślnik oznacza stdin).
  • sha256sum --check --status sumy.txt && echo "wszystko gra" — cicha weryfikacja w skrypcie; komunikat pokaże się tylko, gdy kod wyjścia to 0.

Częste błędy i pułapki

Format pliku z sumami jest wrażliwy: między sumą a nazwą pliku muszą być dwie spacje (albo spacja i gwiazdka w trybie binarnym). Jak ręcznie skleisz linię z jedną spacją, -c rzuci improperly formatted. Druga pułapka: samo OK przy weryfikacji nie oznacza, że plik jest bezpieczny — jeśli atakujący podmienił plik ISO i plik z sumą, wszystko się zgodzi. Sumę bierz zawsze z zaufanego, niezależnego źródła.

Na macOS domyślnie nie ma sha256sum — jest shasum -a 256 albo gsha256sum po instalacji coreutils przez Homebrew. Format wyjścia bywa lekko inny, więc plik sum z Linuksa nie zawsze przejdzie 1:1. I jeszcze klasyk: nie myl sha256sum z md5sum — MD5 jest kryptograficznie złamany i nie nadaje się do weryfikacji bezpieczeństwa.

Powiązane komendy: md5sum, sha1sum, sha512sum, cksum, shasum, b2sum.