Ce face sha256sum / md5sum
sha256sum citește un fișier și afișează amprenta lui SHA-256: 64 de caractere hexazecimale urmate de numele fișierului. Două fișiere cu aceeași amprentă au, practic sigur, același conținut. Site-urile de distribuții publică astfel de sume lângă imaginile ISO, ca să poți verifica descărcarea.
Familia include md5sum, sha1sum, sha512sum și altele, cu aceleași opțiuni. Cu -c, comanda citește un fișier de sume și verifică fiecare fișier listat, afișând OK sau FAILED; codul de ieșire este 1 dacă ceva nu se potrivește.
Opțiuni și argumente
| Opțiune / Parametru | Descriere |
|---|---|
-c, --check |
Verifică fișierele listate într-un fișier de sume. |
--quiet |
La verificare, afișează doar fișierele care nu se potrivesc. |
--ignore-missing |
La verificare, sare peste fișierele care lipsesc de pe disc. |
md5sum, sha1sum, sha512sum |
Aceeași comandă pentru alți algoritmi. Pentru securitate folosește SHA-256 sau SHA-512. |
Exemple
Exemplul 1: Sumele unor fișiere și verificarea lor
Salvăm sumele într-un fișier, apoi le verificăm. Așa poți controla o copie de siguranță mutată pe alt disc.
printf 'Ana,Iasi,450\n' > clienti.csv
printf 'Raport octombrie\n' > raport.txt
sha256sum clienti.csv raport.txt > sume.sha256
cat sume.sha256
sha256sum -c sume.sha256
Rezultat
dc9997aa2a17942ae33ccb22d527b76d340724a209575c0cb14b06c497565264 clienti.csv
3139a18bb1e03ddc7393cc710ecf7e76b3a959c59d6a8964ef68f48ddacac390 raport.txt
clienti.csv: OK
raport.txt: OK
Exemplul 2: Detectarea unui fișier modificat
După ce adăugăm un rând în raport.txt, verificarea eșuează pentru el. Avertismentul de pe stderr este ascuns, iar if folosește codul de ieșire.
printf 'Ana,Iasi,450\n' > clienti.csv
printf 'Raport octombrie\n' > raport.txt
sha256sum clienti.csv raport.txt > sume.sha256
echo 'rand nou' >> raport.txt
if sha256sum -c sume.sha256 2>/dev/null; then
echo "Toate fișierele sunt intacte"
else
echo "Atenție: cel puțin un fișier s-a schimbat"
fi
Rezultat
clienti.csv: OK
raport.txt: FAILED
Atenție: cel puțin un fișier s-a schimbat
Exemplul 3: MD5 pentru o comparație rapidă
MD5 e scurt și suficient ca să vezi dacă două copii sunt identice, dar nu protejează împotriva modificărilor intenționate.
printf 'note: 9 10 8\n' > note-ana.txt
cp note-ana.txt copie.txt
md5sum note-ana.txt copie.txt
Rezultat
39aeafac32e0cf130966a3a7318ce4a5 note-ana.txt
39aeafac32e0cf130966a3a7318ce4a5 copie.txt
Greșeli frecvente
- Compararea sumei „cu ochiul” doar pe primele caractere; folosește
-csau compară șirul întreg. - Verificarea unei imagini descărcate cu suma luată de pe același server compromis; pentru siguranță reală verifică și semnătura GPG a fișierului de sume.
Comenzi înrudite
openssl: Trusa în linie de comandă pentru hash-uri, chei, certificate TLS și verificarea certificatelor unui site.diff: Compară două fișiere linie cu linie și evidențiază diferențele dintre ele.tar: Împachetează mai multe fișiere într-o singură arhivă (tarball) și o comprimă opțional cu gzip sau bzip2.