यदि आप एक Linux उपयोगकर्ता हैं या एक Linux सर्वर का प्रबंधन करने वाले सिस्टम एडमिनिस्ट्रेटर हैं, तो आप "आपके पास फ़ोल्डर में फ़ाइल अपलोड करने की अनुमति नहीं है" त्रुटि का सामना करेंगे। कुछ गूगलिंग के बाद, समाधान अक्सर फ़ाइल अनुमति को "775" या "777" पर सेट करने जितना आसान होता है। तकनीकी शब्दों में, आपसे फ़ाइल को "chmod 777" करने के लिए कहा जाएगा। लेकिन "777" का क्या अर्थ है? और यह "7" क्यों होना चाहिए न कि "8" या "9"?
इस पोस्ट में, हम आपको फ़ाइल अनुमतियों को थोड़ा बेहतर ढंग से समझने में मदद करते हैं, जिसमें chmod 777 का अर्थ भी शामिल है।
फ़ाइल अनुमतियों को समझना
Unix सिस्टम (Linux और macOS सहित) में एक फ़ाइल नियंत्रण तंत्र होता है जो यह निर्धारित करता है कि कौन किसी विशेष फ़ाइल या फ़ोल्डर तक पहुंच सकता है और वे इसके साथ क्या कर सकते हैं।
विचार करने के दो भाग हैं:
क्लासेस। यह निर्धारित करता है कि फ़ाइल तक कौन पहुंच सकता है। तीन पदनाम हैं: एक मालिक, एक समूह (जो सभी समान अनुमतियां साझा करते हैं), और अन्य।
- मालिक आमतौर पर फ़ाइल या फ़ोल्डर का निर्माता होता है। Linux में, आपके होम डायरेक्टरी में आपके द्वारा बनाई गई कोई भी फ़ाइल या फ़ोल्डर आमतौर पर आपके स्वामित्व में होती है जब तक कि आप विशेष रूप से स्वामित्व नहीं बदलते।
- समूह में उपयोगकर्ताओं का एक समूह होता है जो समान अनुमतियों और उपयोगकर्ता विशेषाधिकारों को साझा करते हैं।
- अन्य का अर्थ आम जनता है।
अनुमतियां। ये निर्धारित करती हैं कि उपयोगकर्ता फ़ाइल के साथ क्या कर सकता है। आप किसी फ़ाइल को पढ़, लिख, या निष्पादित कर सकते हैं, और आप इन तीन अनुमतियों के लगभग किसी भी संयोजन को सेट करने में सक्षम हैं।
- पढ़ें। आप फ़ाइल की सामग्री को किसी भी तरह से संशोधित नहीं कर सकते। फ़ोल्डर पर लागू होने पर, आप केवल उस फ़ोल्डर के भीतर की फ़ाइलों को देख सकते हैं; आप फ़ाइलों को किसी भी तरह से हटा या संशोधित नहीं कर सकते या फ़ोल्डर में अधिक फ़ाइलें जोड़ नहीं सकते।
- लिखें। आप फ़ाइल को संशोधित कर सकते हैं। यदि आपके पास किसी फ़ोल्डर के लिए "लिखें" एक्सेस है, तो आप उस फ़ोल्डर में फ़ाइलों को हटा और जोड़ सकते हैं।
- निष्पादित करें। निष्पादन मुख्य रूप से तब उपयोग किया जाता है जब आपको फ़ाइल चलाने की आवश्यकता होती है और इसका सबसे अधिक उपयोग तब होता है जब आपको स्क्रिप्ट चलाने की आवश्यकता होती है।
क्लासेस का अनुमतियों के साथ संयोजन करके, आप नियंत्रित कर सकते हैं कि फ़ाइल तक किसकी पहुंच है और वे कौन सी क्रियाएं कर सकते हैं।
फ़ाइल मालिक के पास अक्सर तीनों अनुमतियां उपलब्ध होती हैं (पढ़ें, लिखें और निष्पादित करें)। यदि आप किसी सर्वर पर फ़ाइल अपलोड करने में असमर्थ हैं, तो यह अक्सर बेमेल अनुमतियों के कारण होता है।
फ़ाइल अनुमति 777 की व्याख्या
एक बार जब आपको क्लासेस और अनुमतियों की बुनियादी समझ हो जाती है, तो आप "777" और "775" जैसी संख्याओं को समझना शुरू कर सकते हैं।
प्रत्येक फ़ाइल और फ़ोल्डर में 8-बिट डेटा होता है जो अनुमतियों को नियंत्रित करता है। इसके मूल बाइनरी रूप में, 000 का अर्थ है कि किसी भी प्रकार की कोई अनुमति नहीं दी गई है।
जब आप "पढ़ें" अनुमति सेट करते हैं, तो यह डेटा में 4-बिट जोड़ता है, जिससे यह "100" (बाइनरी प्रारूप में) या सामान्य दशमलव प्रारूप में "4" बन जाता है। "लिखें" अनुमति सेट करने से डेटा में 2-बिट जुड़ जाएगा, जिससे यह "010" और दशमलव रूप में "2" बन जाएगा। अंत में, "निष्पादित करें" अनुमति सेट करने से डेटा में 1-बिट जुड़ जाता है, जिसके परिणामस्वरूप "001," या दशमलव रूप में "1" होता है। संक्षेप में:
- पढ़ें "4" के बराबर है।
- लिखें "2" के बराबर है।
- निष्पादित करें "1" के बराबर है।
संक्षेप में, अनुमतियां सेट करना बुनियादी गणित है। उदाहरण के लिए, "पढ़ें और लिखें" अनुमतियां सेट करने के लिए, हम 4 और 2 को जोड़कर 6 प्राप्त करते हैं। बेशक, अन्य क्रमपरिवर्तन हैं:
- 0: कोई अनुमति नहीं
- 1: निष्पादित करें
- 2: लिखें
- 3: लिखें और निष्पादित करें
- 4: पढ़ें
- 5: पढ़ें और निष्पादित करें
- 6: पढ़ें और लिखें
- 7: पढ़ें, लिखें, और निष्पादित करें
फ़ाइल अनुमतियों का एक पूरा सेट पहले अंक को मालिक को, दूसरे अंक को समूह को, और तीसरे को अन्य को असाइन करता है। यहां कुछ आमतौर पर उपयोग की जाने वाली अनुमतियां हैं:
- 755. इस अनुमति सेट का उपयोग आमतौर पर वेब सर्वर द्वारा किया जाता है। मालिक के पास पढ़ने, लिखने और निष्पादित करने की सभी अनुमतियां होती हैं। बाकी सभी पढ़ और निष्पादित कर सकते हैं लेकिन फ़ाइल में बदलाव नहीं कर सकते।
- 644. केवल मालिक पढ़ और लिख सकता है। बाकी सभी केवल पढ़ सकते हैं। कोई भी इस फ़ाइल को निष्पादित नहीं कर सकता।
- 655. केवल मालिक पढ़ और लिख सकता है और फ़ाइल को निष्पादित नहीं कर सकता। बाकी सभी पढ़ और निष्पादित कर सकते हैं और फ़ाइल को संशोधित नहीं कर सकते।
जहां तक 777 की बात है, इसका अर्थ है कि प्रत्येक उपयोगकर्ता पढ़, लिख, और निष्पादित कर सकता है। क्योंकि यह पूर्ण अनुमतियां देता है, इसका उपयोग सावधानी से किया जाना चाहिए। हालांकि, कुछ मामलों में, आप किसी भी फ़ाइल को सर्वर पर अपलोड करने से पहले 777 अनुमतियां सेट करने की आवश्यकता होगी।
कमांड लाइन में फ़ाइल अनुमतियां सेट करना
Linux में, आप किसी फ़ाइल या फ़ोल्डर पर राइट-क्लिक करके और "गुण" चुनकर आसानी से फ़ाइल अनुमतियों को बदल सकते हैं। यह एक अनुमति टैब खोलेगा जहां आप परिवर्तन कर सकते हैं।
इसके विपरीत, आप macOS पर राइट-क्लिक करके और "जानकारी प्राप्त करें" चुनकर अनुमति सेटिंग्स बदल सकते हैं। यहां, आप "शेयरिंग और अनुमतियां" अनुभाग का विस्तार कर सकते हैं और अपने परिवर्तन कर सकते हैं।
संशोधन करने के लिए, विशेषाधिकार अनुभाग से प्रासंगिक अनुमतियों का चयन करें और कुछ अधिक उपयुक्त चुनें।
हालांकि, फ़ाइल अनुमतियों को बदलने का यह एकमात्र तरीका नहीं है। आइए इसे और विस्तार से समझाते हैं।
chmod 777 का उपयोग करके फ़ाइल अनुमतियों को बदलना
यदि आप टर्मिनल और कमांड लाइन से अधिक परिचित हैं, तो आप यहां भी अनुमतियों को बदल सकते हैं।
chmod कमांड आपको "मोड बदलने" देती है - एक्सेस अनुमतियों का वर्णन करने का दूसरा तरीका। ऐसा करने के लिए, टर्मिनल खोलें और निम्न टाइप करें:
chmod 777 /path/to/file
संक्षेप में, chmod 777 उन दो अवधारणाओं को जोड़ता है जिन्हें हमने इस लेख में प्रस्तुत किया है। इसका अर्थ है फ़ाइल को एक्सेस वाले सभी के लिए पठनीय, लिखने योग्य और निष्पादन योग्य बनाना। इस प्रकार, यह एक शक्तिशाली और संभावित सिस्टम-ब्रेकर है - इसलिए इसके साथ अतिरिक्त सावधानी बरती जानी चाहिए।
सारांश
फ़ाइल अनुमतियां आपके लिए एक अवरोध पेश कर सकती हैं यदि वे सही ढंग से सेट नहीं हैं। यह डिज़ाइन द्वारा है, क्योंकि एक लॉक्ड डाउन सिस्टम से समझौता नहीं किया जा सकता। हालांकि, यदि आप अपने सिस्टम या सर्वर पर किसी फ़ाइल तक पहुंचना चाहते हैं, तो कुछ अनुमतियों को बदलना सीखना एक ठोस कौशल है।
संक्षेप में, chmod 777 वह कमांड है जिसका उपयोग आप टर्मिनल के भीतर किसी फ़ाइल या फ़ोल्डर को सभी के लिए सुलभ बनाने के लिए करेंगे। आपको इसका उपयोग दुर्लभ अवसरों पर करना चाहिए और एक बार काम पूरा हो जाने पर अधिक प्रतिबंधात्मक अनुमति सेट पर वापस स्विच करना चाहिए।
यदि आप सोच रहे हैं कि टर्मिनल और क्या कर सकता है, तो कमांड लाइन से कॉपी और पेस्ट कैसे करें पर हमारी पोस्ट देखें। क्या आपको फ़ाइल अनुमतियों का प्रबंधन करना है, और क्या यह पोस्ट आपकी मदद करेगी? नीचे टिप्पणी अनुभाग में हमें बताएं!