Linux के साथ chmod आदेश, हम सभी फ़ाइलों और निर्देशिकाओं पर फ़ाइल अनुमतियों को पुनरावर्ती रूप से बदल सकते हैं। यह मार्गदर्शिका बताती है कि कैसे।
हो सकता है कि आपने पहले निम्न त्रुटियों का सामना किया हो:
111 [Permission Denied] "Linux-Screw" [Permission Denied] "Linux-Screw" [readonly]
किसी भी सिस्टम फ़ाइल के लिए, फ़ाइल को संपादित करने के लिए sudo का उपयोग करना पसंदीदा तरीका है। यह आपको सभी सिस्टम संदर्भ रखने की अनुमति देता है। उपयोगकर्ता फ़ाइलों के साथ दैनिक उपयोग के लिए, अनुमतियों को बदलना सबसे अच्छा है। chmod हमारे लिए ऐसा कर सकता है। यह हमें अनुमति बढ़ाने की आवश्यकता से बचाता है और आवश्यकता पड़ने पर हमें एक्सेस देता है।
चामोद क्या है? chmod, या मोड बदलें, किसी फ़ाइल के फ़ाइल मोड बिट्स को बदलता है। आप इसे या तो प्रतीकात्मक रूप से या अष्टाधारी संख्या के प्रतिनिधित्व के साथ बदल सकते हैं।
chmod सिंटैक्स
chmod [OPTION] MODE FILE Or chmod [OPTION] OCTAL-MODE FILE Options: [-c], --changes Verbose-mode, but only for changes [-f], --silent, --quiet Suppress most error messages [-v], --verbose Output a diagnostic for every file processed [-R], --recursive Change files and directories recursively
वे उपलब्ध विकल्प हैं। मोड प्रतीकात्मक संदर्भ को संदर्भित करता है। अगर मैं किसी फ़ाइल में निष्पादन योग्य अनुमति जोड़ना चाहता हूं, तो मैं इसमें प्रवेश करता हूं:
chmod +x [FILE]
और वह निष्पादन योग्य अनुमतियां जोड़ देगा। हम बुनियादी बातों पर जा चुके हैं, हम एक फ़ोल्डर संरचना को ठीक करेंगे और इसे हमें उपलब्ध कराएंगे।
chmod रिकर्सन
अक्सर जब आप किसी फ़ोल्डर निर्देशिका में काम कर रहे होते हैं, तो आपको किसी एकल फ़ाइल की अनुमति को बदलने की आवश्यकता नहीं होती है। आपको उस फ़ाइल की अनुमति, वर्तमान फ़ोल्डर की सभी फ़ाइलों और सभी उपनिर्देशिकाओं को बदलने की आवश्यकता होगी।
सौभाग्य से, chmod -R हमें सभी फाइलों को बार-बार बदलने की अनुमति देता है।
chmod -R 755 * ls -altrR
अनुमतियाँ बदलने के बाद हमें निम्नलिखित दिखाता है।
चामोद -आर
अगर आप जानना चाहते हैं कि क्यों -altrh मेरा डिफ़ॉल्ट और पसंदीदा विकल्पों का सेट है, ls . पर मेरा हाल का लेख देखें ।
ठीक है, हम वहाँ जाते हैं। ऊपर हम देखते हैं कि हमारी निर्देशिकाएं और फाइलें 755 . से मेल खाने के लिए बदल गई हैं , या rwx r-x r-x . वह निर्देशिका अब हमारे लिए उपलब्ध है क्योंकि हम उस समूह (एक उपयोगकर्ता समूह) से संबंधित हैं। यह हमारे लिए भी उपलब्ध है क्योंकि हम उपयोगकर्ता हैं। यदि आप किसी पिछले उपयोगकर्ता के फ़ोल्डर साफ़ कर रहे हैं, तो आप चुने गए के साथ फ़ाइलों का स्वामित्व बदल सकते हैं।
यह आपको एक उपयोगकर्ता के रूप में उपलब्ध कराता है। हालांकि, उपरोक्त chmod . के साथ एक समस्या है . जब आप अपना उमास्क . सेट करते हैं 0022 जैसी किसी चीज़ के लिए, डिफ़ॉल्ट परमिट, निर्देशिका और फ़ाइलें अलग हैं। निर्देशिकाएँ 755 पर बनाई जाती हैं। cd . को अनुमति देना , निर्देशिका बदलें, ठीक से काम करने के लिए आदेश दें। फ़ाइलें 644 के रूप में बनाई जाती हैं, जो निर्देशिका से एक कम है। ऐसा इसलिए है क्योंकि सामान्य फ़ाइलों को निष्पादन अनुमतियों की आवश्यकता नहीं होती है। सीडी . के लिए निर्देशिकाएं करती हैं . तो चलिए इसे ढूंढें . के साथ ठीक करते हैं और -exec ।
खोज के साथ पुनरावर्ती chmod
find <dir> -type d -exec chmod 755{} \; find <dir> -type f -exec chmod 644 {} \;
chmod रिकर्सिवली विद फाइंड
और वहां हम जाते हैं, सब कुछ सहेजा गया और डिफ़ॉल्ट उमास्क के अनुरूप रखा गया। कोई निष्पादन योग्य फ़ाइल और निष्पादन योग्य निर्देशिका नहीं।
निष्कर्ष
फ़ाइल अनुमतियाँ चिपचिपी हो सकती हैं, लेकिन chmod इसे ठीक करने में हमारी मदद करता है। अब जब आप जानते हैं कि अनुमतियों को कैसे बदलना है, तो आप वास्तव में अपनी निर्देशिकाओं और फाइलों का स्वामित्व ले सकते हैं। शेल कमांड के साथ लिनक्स इन्फ्रास्ट्रक्चर को नेविगेट करने के बारे में अधिक जानने की आवश्यकता है? अधिक ट्यूटोरियल यहाँ पढ़ें।