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 wypisujeOKdla 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 doxargs -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 wsumy.txti wypisujeOKlubFAILEDprzy 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.