अवलोकन
सिस्टम एडमिनिस्ट्रेशन के दौरान दर्जनों या सैकड़ों यूज़र अकाउंट्स के क्रेडेंशियल्स को मैन्युअली रीसेट करना काफी समय लेने वाला काम होता है। लिनक्स का chpasswd यूटिलिटी टूल बिना किसी इंटरएक्टिव प्रॉम्प्ट के, बैच प्रोसेसिंग और स्टैंडर्ड इनपुट के जरिए क्रेडेंशियल अपडेशन को पूरी तरह ऑटोमेट करने की सुविधा देता है। इस गाइड में हम Ubuntu एनवायरनमेंट के अंदर सिंगल अकाउंट मॉडिफिकेशन से लेकर टेक्स्ट फाइल द्वारा बल्क पासवर्ड अपडेट और एडवांस एन्क्रिप्शन फ्लैग्स के प्रैक्टिकल उपयोग को विस्तार से समझेंगे।
chpasswd की कार्यप्रणाली और सिंगल यूज़र पासवर्ड अपडेट
प्रैक्टिकल शुरू करने से पहले एनवायरनमेंट तैयार करने के लिए sudo useradd -m -s /bin/bash testuser1 कमांड चलाकर एक टेस्टिंग यूज़र प्रोफाइल सेटअप करते हैं।

मूल रूप से chpasswd यूटिलिटी स्टैंडर्ड इनपुट (stdin) से सीधे username:password प्रारूप में डेटा रीड करती है और बिना यूजर इंटरवेंशन के क्रेडेंशियल्स तुरंत अपडेट कर देती है।
शेल पाइप ऑपरेटर (|) के साथ echo का संयोजन करके हम किसी भी सिंगल अकाउंट का नया क्रेडेंशियल तुरंत इंजेक्ट कर सकते हैं।
⚙️ [महत्वपूर्ण कमांड विकल्प]
-c : पासवर्ड हैशिंग के लिए एल्गोरिदम (जैसे DES, MD5, SHA256, SHA512) सेट करता है।-e : सिस्टम को संकेत देता है कि इनपुट स्ट्रिंग पहले से ही एनक्रिप्टेड हैश फॉर्म में है।-m : एन्क्रिप्शन स्कीमा के रूप में लीगेसी MD5 एल्गोरिदम का चयन करता है।-s : SHA एल्गोरिदम के उपयोग के समय हैशिंग राउंड्स (इट्रेशन काउंट) निर्धारित करता है।-R : किसी विशिष्ट chroot डायरेक्टरी रूट पर टास्क निष्पादित करने के लिए प्रयुक्त होता है।

क्रेडेंशियल अपडेट ठीक से लागू हुआ या नहीं, यह वेरीफाई करने के लिए हम सीधे /etc/shadow डेटाबेस से संबंधित रिकॉर्ड की जांच करते हैं।
कमांड आउटपुट में testuser1 के सामने जेनरेटेड क्रिप्टोग्राफिक हैश स्ट्रिंग दिखाई देती है, जिससे पुष्टि होती है कि नया पासवर्ड सुरक्षित रूप से सिस्टम में दर्ज हो चुका है।

टेक्स्ट फाइल द्वारा मल्टीपल अकाउंट्स के पासवर्ड एक साथ बदलना
एक साथ कई अकाउंट्स को बैच मोड में अपडेट करने की प्रक्रिया टेस्ट करने के लिए sudo useradd -m -s /bin/bash testuser2 && sudo useradd -m -s /bin/bash testuser3 कमांड से दो अतिरिक्त यूजर प्रोफाइल्स तैयार करते हैं।

अपडेट किए जाने वाले यूज़र्स और उनके संबंधित नए क्रेडेंशियल्स की सूची को username:password सिंटैक्स में user_passwords.txt नामक टेक्स्ट फाइल के अंदर सेव करते हैं।

शेल इनपुट रीडायरेक्शन ऑपरेटर (<) की मदद से तैयार की गई user_passwords.txt फाइल को सीधे chpasswd टूल में फीड कर देते हैं।
बिना किसी टर्मिनल प्रॉम्प्ट या मैनुअल हस्तक्षेप के, फाइल में मौजूद सभी खातों के पासवर्ड्स एक ही ऑपरेशन में बैकग्राउंड में प्रोसेस हो जाते हैं।

बैच जॉब के सफल निष्पादन की पुष्टि करने के लिए sudo grep -E '^(testuser2|testuser3):' /etc/shadow | cut -d: -f1 कमांड चलाकर मॉडिफाइड अकाउंट्स की एंट्रीज को वैलिडेट करते हैं।
रिजल्ट में testuser2 और testuser3 दोनों रिकॉर्ड्स सुचारू रूप से दिखाई देते हैं, जिसका अर्थ है कि बल्क अपडेट ऑपरेशन पूरी तरह कामयाब रहा।

क्रिप्टोग्राफिक एल्गोरिदम चयन (-c) और सिक्योरिटी हार्डनिंग
सिस्टम की सुरक्षा नीति को मजबूत करने के लिए हम डिफ़ॉल्ट व्यवहार के बजाय -c SHA512 फ्लैग के जरिए स्पष्ट रूप से SHA512 हैशिंग लागू करके testuser1 का क्रेडेंशियल अपडेट करते हैं।
मजबूत और आधुनिक क्रिप्टोग्राफिक हैश एल्गोरिदम तय करने से पासवर्ड डेटाबेस संभावित ब्रूट-फोर्स और डिक्शनरी हमलों से सुरक्षित रहता है।

नया हैश सही एल्गोरिदम से बना है या नहीं, इसे जांचने के लिए हम दोबारा /etc/shadow में testuser1 के फ़ील्ड्स को चेक करते हैं।
हैश स्ट्रिंग के शुरुआती प्रीफिक्स में $6$ दिखाई देता है, जो लिनक्स सिस्टम में यह प्रमाणित करता है कि पासवर्ड एन्क्रिप्शन के लिए SHA512 इंजन का ही इस्तेमाल हुआ है।

टेस्टिंग एनवायरनमेंट की क्लीनअप प्रक्रिया
ट्यूटोरियल पूरा होने के बाद सर्वर को स्वच्छ स्थिति में बनाए रखने के लिए, बनाए गए डमी अकाउंट्स और उनकी होम डायरेक्टरीज को sudo userdel -r testuser1 && sudo userdel -r testuser2 && sudo userdel -r testuser3 निष्पादित करके पूरी तरह हटा देते हैं।

साथ ही, प्लेनटेक्स्ट क्रेडेंशियल्स से जुड़ी फाइल को सर्वर पर खुला छोड़ने से बचने के लिए rm -f user_passwords.txt कमांड की मदद से उस टेम्परेरी फाइल को भी डिस्क से वाइप कर देते हैं।

इस प्रकार हमने देखा कि chpasswd का कुशलतापूर्वक उपयोग करके किस तरह बड़े पैमाने पर यूजर पासवर्ड्स का बैच अपडेशन और ऑटोमेशन किया जा सकता है।
एंटरप्राइज लिनक्स इन्फ्रास्ट्रक्चर और ऑटोमेटेड डिप्लॉयमेंट पाइपलाइन्स में अकाउंट एडमिनिस्ट्रेशन को तेज और त्रुटिरहित बनाने के लिए यह कमांड अत्यंत कारगर सिद्ध होती है।