Linux'ta MD5 Sağlama Toplamı ile Dosya Oluşturmayı ve Doğrulamayı Öğrenin


Sağlama toplamı, verilerdeki doğru rakamların toplamı olarak hizmet veren ve daha sonra depolama veya iletim sırasında verilerdeki hataları tespit etmek için kullanılabilen bir rakamdır. MD5 (Message Digest 5) toplamları, Linux dosya sistemindeki dosyaları veya dizeleri doğrulamak için sağlama toplamı olarak kullanılabilir.

MD5 Toplamları, MD5 algoritmasının belirli bir dosyaya karşı çalıştırılmasından kaynaklanan 128 bitlik karakter dizeleridir (sayılar ve harfler). MD5 algoritması, karma değeri olarak adlandırılan 128 bitlik mesaj özeti üreten popüler bir karma işlevidir ve belirli bir dosya için bir tane oluşturduğunuzda, kaç kez oluşturulduğuna bakılmaksızın herhangi bir makinede tam olarak değişmez.

Aynı dizelerle sonuçlanan iki farklı dosyayı bulmak normalde çok zordur. Bu nedenle, indirdiğiniz bir dosyanın veya ISO'nun, uzak dosyanın veya ISO'nun bit bit kopyası olduğunu belirleyerek dijital veri bütünlüğünü kontrol etmek için md5sum'u kullanabilirsiniz.

Önerilen Okuma: İlerleme – Linux'taki (cp, mv, dd, tar, vb.) Komutlarının İlerlemesini İzleyin

Linux'ta md5sum programı bir dosyanın MD5 karma değerlerini hesaplar ve kontrol eder. GNU Core Utilities paketinin bir bileşenidir, bu nedenle tüm Linux dağıtımlarında olmasa da çoğunda önceden kurulu olarak gelir.

Aşağıda groups.cvs olarak kaydedilen /etc/group içeriğine bir göz atın.

root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog,aaronkilik
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:
fax:x:21:
voice:x:22:
cdrom:x:24:aaronkilik
floppy:x:25:
tape:x:26:
sudo:x:27:aaronkilik
audio:x:29:pulse
dip:x:30:aaronkilik

Aşağıdaki md5sums komutu, dosya için aşağıdaki gibi bir karma değeri oluşturacaktır:

md5sum groups.csv

bc527343c7ffc103111f3a694b004e2f  groups.csv

İlk satırı (root:x:0:) kaldırarak dosyanın içeriğini değiştirmeyi denediğinizde ve ardından komutu ikinci kez çalıştırdığınızda, karma değerini gözlemlemeye çalışın:

md5sum groups.csv

46798b5cfca45c46a84b7419f8b74735  groups.csv

Karma değerinin artık değiştiğini fark edeceksiniz, bu da dosyanın içeriğinin değiştirildiğini gösterir.

Şimdi dosyanın ilk satırını (root:x:0:) geri koyun ve onu group_file.txt olarak yeniden adlandırın ve karma değerini yeniden oluşturmak için aşağıdaki komutu çalıştırın:

md5sum groups_list.txt

bc527343c7ffc103111f3a694b004e2f  groups_list.txt

Yukarıdaki çıktıya göre, dosya yeniden adlandırılsa bile karma değeri orijinal içeriğiyle hala aynıdır.

Önemli: md5 toplamları dosya adı yerine yalnızca dosya içeriğini doğrular/çalışır.

groups_list.txt dosyası, groups.csv dosyasının kopyası olduğundan, dosyaların karma değerini aşağıdaki gibi aynı anda oluşturmayı deneyin.

Her ikisinin de eşit karma değerlerine sahip olduğunu göreceksiniz, bunun nedeni tamamen aynı içeriğe sahip olmalarıdır.

md5sum groups_list.txt  groups.csv 

bc527343c7ffc103111f3a694b004e2f  groups_list.txt
bc527343c7ffc103111f3a694b004e2f  groups.csv

Bir dosyanın/dosyaların karma değerini/değerlerini bir metin dosyasına yönlendirebilir ve saklayabilir, başkalarıyla paylaşabilirsiniz. Yukarıdaki iki dosya için, oluşturulan karma değerlerini daha sonra kullanmak üzere bir metin dosyasına yeniden yönlendirmek için aşağıdaki komutu verebilirsiniz:

md5sum groups_list.txt  groups.csv > myfiles.md5

Sağlama toplamını oluşturduğunuzdan bu yana dosyaların değiştirilmediğini kontrol etmek için sonraki komutu çalıştırın. Her dosyanın adını “Tamam ” ile birlikte görüntüleyebilmelisiniz.

Önerilen Okuma: Linux'ta Bellek Kullanımına Göre En İyi 15 İşlemi Bulun

-c veya --check seçeneği, md5sums komutuna dosyalardan MD5 toplamlarını okumasını ve bunları kontrol etmesini söyler.

md5sum -c myfiles.md5

groups_list.txt: OK
groups.csv: OK

Sağlama toplamını oluşturduktan sonra dosyaları yeniden adlandıramayacağınızı veya dosyaları yeni adlarla doğrulamaya çalıştığınızda "Böyle bir dosya veya dizin yok" hatası alacağınızı unutmayın.

Örneğin:

mv groups_list.txt new.txt
$ mv groups.csv file.txt
$ md5sum -c  myfiles.md5
md5sum: groups_list.txt: No such file or directory
groups_list.txt: FAILED open or read
md5sum: groups.csv: No such file or directory
groups.csv: FAILED open or read
md5sum: WARNING: 2 listed files could not be read

Konsept aynı zamanda dizeler için de geçerlidir; aşağıdaki komutlarda -n, sondaki yeni satırın çıktısını verme anlamına gelir:

echo -n "Tecmint How-Tos" | md5sum - 

afc7cb02baab440a6e64de1a5b0d0f1b  -
echo -n "Tecmint How-To" | md5sum - 

65136cb527bff5ed8615bd1959b0a248  -

Bu kılavuzda size dosyalar için karma değerlerin nasıl oluşturulacağını, Linux'ta dosya bütünlüğünün daha sonra doğrulanması için bir sağlama toplamının nasıl oluşturulacağını gösterdim. MD5 algoritmasındaki güvenlik açıkları tespit edilmiş olsa da MD5 karmaları, özellikle bunları oluşturan tarafa güveniyorsanız hâlâ kullanışlı olmaya devam ediyor.

Bu nedenle dosyaların doğrulanması, bozuk dosyaların indirilmesini, saklanmasını veya paylaşılmasını önlemek için sistemlerinizde dosya işlemenin önemli bir yönüdür. Son fakat bir o kadar da önemlisi, her zaman olduğu gibi herhangi bir yardım almak için aşağıdaki yorum formunu kullanarak bize ulaşın, ayrıca bu gönderiyi geliştirmek için bazı önemli önerilerde de bulunabilirsiniz.