लिनक्स में फाइल कॉपी करते समय फाइल अनुमतियों को कैसे सुरक्षित रखें

फ़ाइल अनुमतियां यूनिक्स विनिर्देश का एक अभिन्न अंग हैं। हालाँकि, कुछ चीजें हैं जो शुरू करने वाले उपयोगकर्ता अक्सर अनजान होते हैं, जैसे कि उन्हें कॉपी करते समय लिनक्स में फ़ाइल अनुमतियों को कैसे बनाए रखा जाए।

चूंकि कॉपी की गई फाइलें अनिवार्य रूप से नई फाइलें हैं, इसलिए उनकी अनुमति वर्तमान उपयोगकर्ता के उमास्क पर निर्भर करती है। यह उन स्थितियों को जन्म दे सकता है जहां कॉपी की गई फ़ाइलों या फ़ोल्डरों में स्रोत की तुलना में पूरी तरह से अलग अनुमतियां होती हैं।

सौभाग्य से आपके लिए, cp और rsync जैसे मानक कमांड-लाइन टूल का उपयोग करके लिनक्स में फ़ाइल अनुमतियों को बनाए रखना आसान है। लिनक्स में अनुमतियों को कॉपी और संरक्षित करने का तरीका देखने के लिए नीचे दिए गए उदाहरण देखें।

सीपी . का उपयोग करके फ़ाइल अनुमतियां सुरक्षित रखें

मानक सीपी कमांड में कॉपी करते समय आपको फ़ाइल अनुमतियों को बनाए रखने की आवश्यकता होती है। आप फ़ाइल के मोड, स्वामित्व और टाइमस्टैम्प को संरक्षित करने के लिए cp के -p विकल्प का उपयोग कर सकते हैं।

 cp -p source-file dest-file

हालाँकि, निर्देशिकाओं के साथ काम करते समय आपको इस कमांड में -r विकल्प जोड़ना होगा। यह सभी उप-निर्देशिकाओं और व्यक्तिगत फ़ाइलों की प्रतिलिपि बनाएगा, उनकी मूल अनुमतियों को बरकरार रखते हुए।

 cp -rp source-dir/ dest-dir/

आप फ़ाइल अनुमतियों को बनाए रखने के लिए cp के -a विकल्प का भी उपयोग कर सकते हैं। यह संग्रह मोड को सक्षम करता है, फ़ाइल अनुमतियों से SELinux संदर्भों तक सब कुछ संरक्षित करता है।

 cp -a source-dir/ dest-dir/

rsync का उपयोग करके Linux में अनुमतियाँ बनाए रखें

आप लिनक्स में कॉपी अनुमतियों को संरक्षित करने के लिए rsync उपयोगिता का भी उपयोग कर सकते हैं। कई व्यवस्थापक इसकी तेज प्रतिलिपि गति के कारण cp पर rsync पसंद करते हैं। चूंकि rsync केवल फ़ाइल के अद्यतन भाग की प्रतिलिपि बनाता है, वे आपके Linux हार्ड ड्राइव को क्लोन करने जैसे कार्यों के लिए अधिक उपयुक्त हैं।

 rsync -a source-dir/ dest-dir

rsync का -a विकल्प आर्काइव मोड को सक्षम करता है, जो अनुमतियों और स्वामित्व जैसी फ़ाइल विशेषताओं को संरक्षित करता है। आप वर्बोज़ आउटपुट के लिए -v विकल्प और मानव-पठनीय प्रारूप में संख्याओं को देखने के लिए -h विकल्प का उपयोग कर सकते हैं।

 rsync -avh source-dir/ dest-dir

साथ ही, गंतव्य निर्देशिका से अंतिम स्लैश ( / ) की छूट पर ध्यान दें। अंतिम स्लैश को गंतव्य में जोड़ने से rsync अन्य उप-निर्देशिका स्तर के अंतर्गत फ़ाइलों की प्रतिलिपि बना लेगा।

Linux में फ़ाइल अनुमतियां सत्यापित करें

आप लिनक्स में गेटफैक्ल (फाइल एक्सेस कंट्रोल लिस्ट प्राप्त करें) कमांड का उपयोग करके आसानी से फाइल अनुमतियों को सत्यापित कर सकते हैं। यह पुष्टि करेगा कि अनुमतियों को अपेक्षित रूप से संरक्षित किया गया था या नहीं।

 getfacl source-file
getfacl dest-file

लिनक्स में अनुमतियों को संरक्षित करते हुए फाइलों की प्रतिलिपि बनाएँ

cp और rsync दोनों Linux में फ़ाइल अनुमतियों को संरक्षित करने के लिए मानक विकल्प प्रदान करते हैं। आप रोज़मर्रा के कार्यों के लिए cp का उपयोग कर सकते हैं, जबकि rsync बड़े पैमाने पर डेटा के लिए बेहतर अनुकूल होगा। एक बार कॉपी करने के बाद getfacl का उपयोग करके अनुमतियों को सत्यापित करना सुनिश्चित करें।

हालाँकि rsync दूरस्थ मशीनों के बीच फ़ाइलों की प्रतिलिपि बना सकता है, scp (सुरक्षित प्रतिलिपि) कमांड इस कार्य के लिए एक अन्य व्यवहार्य विकल्प है। आप scp का उपयोग करके नेटवर्क सिस्टम से सुरक्षित रूप से फ़ाइलों का बैकअप ले सकते हैं।