Ubuntu chgrp गाइड: लिनक्स में फाइल ग्रुप ओनरशिप बदलें

परिचय

लिनक्स ऑपरेटिंग सिस्टम पर काम करते समय फाइलों और डायरेक्टरीज की ग्रुप ओनरशिप को नियंत्रित करना सिस्टम सुरक्षा का बुनियादी हिस्सा है। इस व्यावहारिक मार्गदर्शिका में हम chgrp टूल के प्रभावी उपयोग पर विस्तार से चर्चा करेंगे। सामान्य सिंटैक्स के अलावा डायरेक्टरी ट्री के लिए रिकर्सिव अपडेट (-R), संदर्भ आधारित बदलाव (--reference), और सिम्बोलिक लिंक्स के प्रबंधन जैसे आवश्यक विकल्पों को स्टेप-बाय-स्टेप टर्मिनल उदाहरणों के जरिए स्पष्ट किया गया है।

chgrp की कार्यप्रणाली और एकल फाइल का ग्रुप बदलना

प्रैक्टिकल लैब शुरू करने से पहले सिस्टम में एक नया ग्रुप जोड़ते हैं। इसके लिए sudo groupadd -f devteam कमांड चलाकर devteam नामक ग्रुप तैयार करें:

sudo groupadd -f devteam

परीक्षण हेतु एक सामान्य फाइल की आवश्यकता होगी। नीचे दी गई touch /tmp/sample_doc.txt कमांड से टेम्परेरी डायरेक्टरी में फाइल बनाएं:

touch /tmp/sample_doc.txt

किसी भी प्रकार के बदलाव से पहले फाइल के मौजूदा यूजर और ग्रुप की स्थिति की पुष्टि करने के लिए ls -l /tmp/sample_doc.txt रन करें:

ls -l /tmp/sample_doc.txt

लिनक्स में chgrp (Change Group) यूटिलिटी का मुख्य कार्य किसी भी फाइल सिस्टम ऑब्जेक्ट के ग्रुप असाइनमेंट को अपडेट करना है। लक्षित फाइल को नए ग्रुप में ट्रांसफर करने के लिए sudo chgrp devteam /tmp/sample_doc.txt निष्पादित करें:

⚙️ [अक्सर उपयोग किए जाने वाले फ्लैग्स]

-c : केवल उन्हीं फाइलों का स्टेटस टर्मिनल पर दिखाता है जिनका ग्रुप वास्तव में मॉडिफाई हुआ हो।
-f : परमिशन एरर या अनुपलब्ध फाइलों से संबंधित अधिकांश त्रुटि संदेशों को म्यूट कर देता है।
-v : प्रक्रिया के दौरान प्रोसेस की जा रही प्रत्येक फाइल का विस्तृत वर्बोस विवरण प्रिंट करता है।
-R : निर्दिष्ट डायरेक्टरी के साथ-साथ उसकी सभी आंतरिक फाइलों और सब-फोल्डर्स पर बदलाव लागू करता है।
--reference=RFILE : मैन्युअल ग्रुप नाम टाइप करने के बजाय किसी बेस फाइल (RFILE) के मौजूदा ग्रुप को क्लोन करता है।

sudo chgrp devteam /tmp/sample_doc.txt

ग्रुप ओनरशिप सफलतापूर्वक devteam में परिवर्तित हुई या नहीं, इसे जांचने के लिए दोबारा ls -l /tmp/sample_doc.txt रन करें:

ls -l /tmp/sample_doc.txt

डायरेक्टरी और उसकी फाइलों का रिकर्सिव ग्रुप रूपांतरण (-R)

नेस्टेड डायरेक्टरी स्ट्रक्चर पर एक साथ ग्रुप असाइन करने के अभ्यास के लिए mkdir -p /tmp/project_dir/sub की मदद से पैरेंट और चाइल्ड डायरेक्टरी बनाएं:

mkdir -p /tmp/project_dir/sub

इसके बाद दोनों स्तरों पर डमी फाइलें जोड़ने के लिए touch /tmp/project_dir/file1.txt /tmp/project_dir/sub/file2.txt चलाएं:

touch /tmp/project_dir/file1.txt /tmp/project_dir/sub/file2.txt

रिकर्सिव ऑपरेशन से पहले पूरे फोल्डर ट्री की मौजूदा ओनरशिप स्थिति का मुआयना करने के लिए ls -lR /tmp/project_dir निष्पादित करें:

ls -lR /tmp/project_dir

पूरे प्रोजेक्ट फोल्डर की अनुमतियां एक साथ अपडेट करने के लिए -R (रिकर्सिव) विकल्प आदर्श समाधान है। sudo chgrp -R devteam /tmp/project_dir चलाकर मेन डायरेक्टरी और सभी आंतरिक फाइलों का ग्रुप एक बार में devteam सेट करें:

sudo chgrp -R devteam /tmp/project_dir

सभी सब-डायरेक्टरीज और फाइलों पर यह बदलाव सही तरीके से लागू हो चुका है, इसकी पुष्टि के लिए ls -lR /tmp/project_dir चलाएं:

ls -lR /tmp/project_dir

किसी अन्य फाइल से ग्रुप ओनरशिप क्लोन करना (–reference)

ग्रुप सेटिंग्स की कॉपी बनाने का अभ्यास करने हेतु touch /tmp/target_file.txt का उपयोग करके एक नई टारगेट फाइल जनरेट करें:

touch /tmp/target_file.txt

संदर्भ (रेफरेंस) फाइल और टारगेट फाइल दोनों के वर्तमान ग्रुप्स की तुलना करने के लिए ls -l /tmp/sample_doc.txt /tmp/target_file.txt चलाएं:

ls -l /tmp/sample_doc.txt /tmp/target_file.txt

जब आपको ग्रुप का सटीक नाम याद न हो या किसी स्टैंडर्ड फाइल जैसी सेटिंग्स तुरंत लागू करनी हों, तब --reference फ्लैग बेहद उपयोगी साबित होता है। /tmp/sample_doc.txt के ग्रुप को सीधे टारगेट फाइल पर रेप्लिकेट करने के लिए sudo chgrp --reference=/tmp/sample_doc.txt /tmp/target_file.txt रन करें:

sudo chgrp –reference=/tmp/sample_doc.txt /tmp/target_file.txt

लक्षित फाइल ने सोर्स फाइल का devteam ग्रुप सफलतापूर्वक ग्रहण कर लिया है, इसे देखने के लिए ls -l /tmp/target_file.txt का आउटपुट चेक करें:

ls -l /tmp/target_file.txt

वर्बोस आउटपुट (-v) और सिम्बोलिक लिंक का प्रबंधन (-h)

एक अन्य परिदृश्य के परीक्षण के लिए सिस्टम में sudo groupadd -f qateam कमांड चलाकर qateam ग्रुप बनाएं:

sudo groupadd -f qateam

सॉफ्ट लिंक बिहेवियर को समझने हेतु ln -sf /tmp/sample_doc.txt /tmp/sample_link की सहायता से मूल फाइल का एक सिम्बोलिक लिंक बनाएं:

ln -sf /tmp/sample_doc.txt /tmp/sample_link

तैयार किए गए सिम्बोलिक लिंक की शुरुआती ओनरशिप डिटेल्स का निरीक्षण करने के लिए ls -l /tmp/sample_link चलाएं:

ls -l /tmp/sample_link

निष्पादन के प्रत्येक चरण की लाइव जानकारी स्क्रीन पर देखने के लिए -v (verbose) फ्लैग इस्तेमाल करें। sudo chgrp -v qateam /tmp/sample_doc.txt रन करके फाइल को नए ग्रुप में भेजें और टर्मिनल पर विस्तृत स्टेटस संदेश देखें:

sudo chgrp -v qateam /tmp/sample_doc.txt

सामान्यतः chgrp सिम्बोलिक लिंक के वास्तविक टारगेट फाइल पर काम करता है। यदि आप मूल फाइल के बजाय खुद सिम्बोलिक लिंक फाइल का ग्रुप बदलना चाहते हैं, तो -h फ्लैग का उपयोग करें। लिंक ऑब्जेक्ट पर ग्रुप लागू करने के लिए sudo chgrp -h qateam /tmp/sample_link चलाएं:

sudo chgrp -h qateam /tmp/sample_link

अंत में ls -l /tmp/sample_link द्वारा सुनिश्चित करें कि सिम्बोलिक लिंक का अपना ग्रुप ओनरशिप सफलतापूर्वक qateam में बदल चुका है:

ls -l /tmp/sample_link

उबंटू लिनक्स में chgrp कमांड फाइलों और डायरेक्टरीज की ग्रुप ओनरशिप को व्यवस्थित करने का एक सीधा और भरोसेमंद साधन है। इन प्रमुख विकल्पों और वास्तविक उदाहरणों की मदद से आप अपने लिनक्स सर्वर पर यूजर परमिशन और टीम कोलैबोरेशन को सुरक्षित रूप से प्रबंधित कर सकते हैं।