Ubuntu cksum गाइड: फ़ाइल अखंडता और चेकसम सत्यापन

डेटा अखंडता और cksum की उपयोगिता

लिनक्स परिवेश में नेटवर्क ट्रांसफर या बैकअप प्रक्रियाओं के उपरांत डेटा का सुरक्षित और अपरिवर्तित रहना अत्यंत आवश्यक माना जाता है। किसी भी फाइल में अनपेक्षित बदलाव या करप्शन का समय रहते पता लगाना सिस्टम एडमिनिस्ट्रेटर की मुख्य प्राथमिकताओं में शामिल है। इस ट्यूटोरियल में हम Ubuntu 24.04 के इन-बिल्ट cksum यूटिलिटी की मदद से विभिन्न एल्गोरिदम का उपयोग करके फाइल अखंडता (File Integrity) को व्यावहारिक रूप से जाँचना सीखेंगे।

एकल फ़ाइल पर बुनियादी cksum का निष्पादन

प्रयोग के लिए एक अलग टेस्ट डायरेक्टरी तैयार करके उसमें प्रवेश करने हेतु mkdir -p ~/cksum_demo && cd ~/cksum_demo रन करें।

mkdir -p ~/cksum_demo && cd ~/cksum_demo

चेकसम विश्लेषण के उद्देश्य से डमी टेक्स्ट फ़ाइल जनरेट करने के लिए echo 'Hello Ubuntu cksum test' > original.txt कमांड चलाएँ।

echo ‘Hello Ubuntu cksum test’ > original.txt

cksum टूल निर्दिष्ट फ़ाइल की बाइट गणना और विशिष्ट चेकसम मान उत्पन्न करके डेटा की प्रामाणिकता सुनिश्चित करता है।
कंसोल पर दिखने वाला पहला अंक 32-बिट CRC चेकसम वैल्यू को दर्शाता है, जबकि दूसरा अंक फ़ाइल के वास्तविक आकार (24 बाइट्स) को इंगित करता है।
⚙️ [महत्वपूर्ण विकल्प]

-a, --algorithm : पारंपरिक CRC के अतिरिक्त md5, sha1 अथवा sha256 जैसे आधुनिक क्रिप्टोग्राफ़िक एल्गोरिदम का चयन करने के लिए।
-c, --check : पहले से तैयार चेकसम इंडेक्स फ़ाइल पढ़कर सभी लक्षित फ़ाइलों का एक साथ स्वतः सत्यापन करने हेतु।
--untagged : एल्गोरिदम टैग हटाकर केवल चेकसम और फ़ाइल नाम को रिवर्स फ़ॉर्मेट में प्रदर्शित करने के लिए।
--base64 : हेक्साडेसिमल प्रारूप की जगह डाइजेस्ट को Base64 स्ट्रिंग में एन्कोड करने हेतु।
--raw : परिणाम को मानव-पठनीय पाठ के बजाय बाइनरी बाइट्स में सीधे आउटपुट करने के लिए।

cksum original.txt

फ़ाइलों की तुलना और अनधिकृत बदलावों की पहचान

परीक्षण के समानांतर एक हूबहू प्रतिलिपि तैयार करने के लिए cp original.txt copy.txt निष्पादित करें।

cp original.txt copy.txt

डेटा में जानबूझकर बदलाव की स्थिति का अनुकरण करने हेतु मूल फ़ाइल की कॉपी बनाकर उसमें अतिरिक्त टेक्स्ट जोड़ने के लिए cp original.txt modified.txt && echo 'unexpected change' >> modified.txt चलाएँ।

cp original.txt modified.txt && echo ‘unexpected change’ » modified.txt

तैयार की गई सभी फाइलों का सामूहिक विश्लेषण करने के लिए cksum original.txt copy.txt modified.txt निष्पादित करें।
परिणाम में स्पष्ट दिखाई देता है कि original.txt और copy.txt की सामग्री समरूप होने के कारण उनका चेकसम (306207352) तथा बाइट साइज़ (24) शत-प्रतिशत समान है।
इसके विपरीत, फेरबदल की गई modified.txt का चेकसम (633487654) और आकार (42) पूरी तरह बदल जाता है, जिससे फ़ाइल में किसी भी अनधिकृत हस्तक्षेप को तुरंत पकड़ा जा सकता है।

cksum original.txt copy.txt modified.txt

पाइपलाइन तथा मानक इनपुट (stdin) डेटा का सत्यापन

पाइपलाइन (|) की सहायता से मेमोरी में मौजूद लाइव डेटा स्ट्रीम का सीधा विश्लेषण करने के लिए echo 'Streaming text data' | cksum कमांड चलाएँ।
यह तकनीक बिना किसी अस्थायी फ़ाइल को डिस्क पर लिखे, डेटा स्ट्रीम का तात्कालिक चेकसम (1759270211) एवं बाइट गणना (20) प्रस्तुत कर देती है।

echo ‘Streaming text data’ | cksum

कई फ़ाइलों को संपीड़ित संग्रह में बदलने के तुरंत बाद उसकी अखंडता सुरक्षित करने के लिए tar -cf demo_archive.tar original.txt copy.txt && cksum demo_archive.tar का प्रयोग करें।
निर्मित demo_archive.tar आर्काइव का चेकसम (2343346160) और उसका संपूर्ण आकार (10240 बाइट्स) टर्मिनल पर सफलता से दर्ज हो जाता है।

tar -cf demo_archive.tar original.txt copy.txt && cksum demo_archive.tar

आधुनिक एल्गोरिदम (SHA256, MD5) एवं चेकसम फ़ाइल द्वारा सत्यापन

-a sha256 फ्लैग के साथ अधिक सुरक्षित हैश तैयार करके उसे रीडायरेक्शन (>) ऑपरेटर द्वारा फ़ाइल में सुरक्षित करने हेतु cksum -a sha256 original.txt > original.sha256 चलाएँ।

cksum -a sha256 original.txt > original.sha256

दर्ज रिकॉर्ड की संरचना देखने के लिए cat original.sha256 रन करें।
फ़ाइल के भीतर लक्षित फ़ाइल नाम के साथ मानक टैग प्रारूप में 64 अक्षरों का सुदृढ़ SHA256 हैश डाइजेस्ट व्यवस्थित रूप से संग्रहीत मिलता है।

cat original.sha256

संग्रहीत डाइजेस्ट के आधार पर फ़ाइल अखंडता की स्वचालित पुष्टि करने के लिए cksum -c original.sha256 चलाएँ।
वर्तमान स्थिति और रिकॉर्ड किए गए मान का पूर्ण मिलान होने पर सिस्टम original.txt: OK रिपोर्ट करता है, जो यह प्रमाणित करता है कि फ़ाइल अपनी मूल अवस्था में पूर्णतः सुरक्षित है।

cksum -c original.sha256

इस गाइड में हमने उबंटू परिवेश में cksum यूटिलिटी का उपयोग करते हुए डेटा अखंडता की बुनियादी से लेकर उन्नत स्तर तक जाँच करने की विधियों को समझा।
फ़ाइल ट्रांसफर, बैकअप बहाली अथवा सिस्टम माइग्रेशन के दौरान किसी भी डेटा त्रुटि से बचने के लिए यह कमांड एक बेहद त्वरित और भरोसेमंद समाधान प्रदान करती है।