Linux chmod कमांड के साथ, हम सभी फ़ाइलों और निर्देशिकाओं पर फ़ाइल अनुमतियों को रिकर्सिवली बदल सकते हैं। यह गाइड बताता है कि कैसे।
संभावना है कि आपने पहले निम्नलिखित त्रुटियों का सामना किया है:
111 [Permission Denied] "Linux-Screw" [Permission Denied] "Linux-Screw" [readonly]
किसी भी सिस्टम फ़ाइल के लिए, sudo का उपयोग करना फ़ाइल संपादित करने का पसंदीदा तरीका है। यह आपको सभी सिस्टम संदर्भ बनाए रखने की अनुमति देता है। रोजमर्रा के उपयोगकर्ता फ़ाइलों के उपयोग के लिए, अनुमतियों को बदलना सबसे अच्छा है। chmod हमारे लिए ऐसा कर सकता है। यह हमें अनुमति बढ़ाने की आवश्यकता से बचाता है और जब हमें इसकी आवश्यकता होती है तो हमें एक्सेस देता है।
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
हमें अनुमतियां बदलने के बाद निम्नलिखित दिखाता है।

chmod -R
यदि आप जानना चाहते हैं कि -altrh मेरा डिफ़ॉल्ट और पसंदीदा विकल्प सेट क्यों है, तो ls पर मेरा हालिया लेख देखें।
ठीक है, वहां हम चलते हैं। ऊपर हम देखते हैं कि हमारी निर्देशिकाएं और फ़ाइलें 755, या rwx r-x r-x से मेल खाने के लिए बदल गई हैं। वह निर्देशिका अब हमारे लिए उपलब्ध है क्योंकि हम उस ग्रुप (एक उपयोगकर्ता ग्रुप) से संबंधित हैं। यह हमारे लिए भी उपलब्ध है क्योंकि हम उपयोगकर्ता हैं। यदि आप पिछले उपयोगकर्ता से फ़ोल्डर साफ कर रहे हैं तो आप chown के साथ फ़ाइलों का स्वामित्व बदल सकते हैं।
यह इसे एक उपयोगकर्ता के रूप में आपके लिए उपलब्ध कराता है। हालांकि, उपरोक्त chmod के साथ एक समस्या है। जब आप अपने umask को 0022 जैसी किसी चीज़ पर सेट करते हैं, तो डिफ़ॉल्ट परम, निर्देशिकाएं और फ़ाइलें अलग होती हैं। निर्देशिकाएं 755 पर बनाई जाती हैं। cd, चेंज डायरेक्टरी, कमांड को ठीक से काम करने की अनुमति देता है। फ़ाइलें 644 पर बनाई जाती हैं, निर्देशिका से एक कम। ऐसा इसलिए है क्योंकि सामान्य फ़ाइलों को निष्पादन अनुमतियों की आवश्यकता नहीं होती है। निर्देशिकाओं को होती है, cd के लिए। तो आइए इसे find और -exec के साथ ठीक करें।
Find के साथ chmod रिकर्सिवली
find <dir> -type d -exec chmod 755{} \; find <dir> -type f -exec chmod 644 {} \;

chmod Recursively with Find
और वहां हम चलते हैं, सब कुछ सहेजा गया और डिफ़ॉल्ट umask के अनुरूप रखा गया। कोई निष्पादन योग्य फ़ाइलें नहीं, और निष्पादन योग्य निर्देशिकाएं।
निष्कर्ष
फ़ाइल अनुमतियां जिद्दी हो सकती हैं, लेकिन chmod हमें इसे ठीक करने में मदद करता है। अब जब आप जानते हैं कि अनुमतियों को कैसे बदलना है, तो आप वास्तव में अपनी निर्देशिकाओं और फ़ाइलों का स्वामित्व ले सकते हैं। शेल कमांड के साथ Linux इंफ्रास्ट्रक्चर को नेविगेट करने के बारे में अधिक जानने की आवश्यकता है? यहां और ट्यूटोरियल पढ़ें।