चूंकि लिनक्स एक बहु-उपयोगकर्ता ऑपरेटिंग सिस्टम है, इसमें एक तंत्र है जो यह सुनिश्चित करने के लिए फ़ाइल अनुमतियों को सेट और प्रबंधित करता है कि केवल अधिकृत प्रक्रियाएं और उपयोगकर्ता ही विभिन्न निर्देशिकाओं और फाइलों तक पहुंच सकते हैं। जब आप लिनक्स का उपयोग करते हैं, तो आप विभिन्न उदाहरणों का सामना कर सकते हैं जहाँ आप "अनुमति अस्वीकृत" त्रुटि के कारण फ़ाइलों या निर्देशिकाओं को संपादित नहीं कर सकते हैं, यह दर्शाता है कि आपके पास आवश्यक विशेषाधिकार नहीं हैं। यह ट्यूटोरियल आपको दिखाएगा कि लिनक्स में फ़ाइल अनुमतियों को पुनरावर्ती रूप से कैसे बदला जाए ताकि यह सुनिश्चित हो सके कि आपकी अनुमति सेटिंग्स उप-फ़ोल्डरों और फ़ाइलों पर लागू होती हैं।
Linux में फ़ाइल अनुमतियों की जांच कैसे करें
जब किसी फ़ाइल या निर्देशिका संचालन पर "अनुमति अस्वीकृत" त्रुटि होती है, तो उपयोगकर्ता, समूह और अन्य के लिए आवंटित अनुमतियों की जांच करके प्रारंभ करें।
ऐसा करने के लिए, आप ls -l
. का उपयोग कर सकते हैं आज्ञा। उदाहरण के लिए, "/ var" निर्देशिका में विभिन्न फाइलों और निर्देशिकाओं के लिए निम्नलिखित अनुमतियां हैं।
उपरोक्त आउटपुट में विशिष्ट जानकारी है।
- पहला कॉलम फ़ाइल और निर्देशिका अनुमतियों का प्रतिनिधित्व करता है। इस कॉलम का पहला अक्षर इस प्रकार को दर्शाता है:
d
मतलब निर्देशिका,l
एक प्रतीकात्मक लिंक के लिए खड़ा है, और-
एक नियमित फ़ाइल। - अन्य नौ वर्णों को तीन सेटों में बांटा गया है:
u
उपयोगकर्ता,g
समूह, औरo
स्वामी फ़ाइल या निर्देशिका अनुमतियों को इंगित करता है।r
"पढ़ें" अनुमतियों को इंगित करता है,w
"लिखें" अनुमतियों को इंगित करता है, औरX
"निष्पादित" अनुमतियों को इंगित करता है।
एक बार जब आप अपनी कार्यशील निर्देशिका या फ़ाइल की फ़ाइल अनुमतियों को जान लेते हैं, तो आप उन्हें आसानी से बदल सकते हैं।
फ़ाइल अनुमतियां बदलने के लिए chmod का उपयोग कैसे करें
chmod
Linux में फ़ाइल अनुमतियों को बदलने के लिए कमांड सबसे आसान तरीका है। कमांड के लिए सामान्य सिंटैक्स है:
chmod {permission}{operator}{mode}
- अनुमति:यह उपयोगकर्ता, समूह, स्वामी या सभी को दी गई अनुमतियों का प्रतिनिधित्व करता है।
- ऑपरेटर:यह अनुमति के असाइनी को दी गई अनुमतियों को इंगित करता है:
+
अनुमति देता है,-
अनुमतियों को अस्वीकार करता है, और=
निर्दिष्ट करता है कि किन अनुमतियों को सेट करना है। - मोड:यह निर्धारित करता है कि कौन सी अनुमतियां सेट करनी हैं:
r
पढ़ें,w
लिखें, याx
निष्पादित करें।
chmod
. के बारे में अधिक जानकारी के लिए और यह कैसे काम करता है, इस लेख को देखें।
उदाहरण के लिए, "/ var" निर्देशिका में बैकअप निर्देशिका में सभी को लिखने से इनकार करने के लिए, आप कमांड का उपयोग कर सकते हैं:
sudo chmod -w /var/backups
हालांकि chmod
. का उपयोग करके फ़ाइल अनुमतियां बदलना आदेश प्रभावी है, यह केवल निर्दिष्ट निर्देशिका या फ़ाइल के लिए फ़ाइल अनुमतियों को बदलता है।
सौभाग्य से, आप किसी निर्देशिका या फ़ाइल और उसकी उप-निर्देशिकाओं और फ़ाइलों की फ़ाइल अनुमतियों को पुनरावर्ती रूप से बदल सकते हैं। ऐसा करने के लिए, chmod कमांड रिकर्सिव -r
. का उपयोग करें विकल्प।
उदाहरण के लिए, आइए read
. को दोबारा हटा दें "/ var/बैकअप" निर्देशिका और उसकी सभी फ़ाइलों और उपनिर्देशिकाओं के लिए अनुमतियाँ। वर्तमान अनुमतियां हैं:
drwxrwxrwx 2 root root 4096 Jul 15 06:25 backups
अब चलो chmod
चलाते हैं अनुमतियों को बदलने के लिए पुनरावर्ती रूप से:
sudo chmod –r -r /var/backups
अब आप देख सकते हैं कि फ़ाइल अनुमतियाँ बदल गई हैं।
ढूंढने के साथ पुनरावर्ती परिवर्तन अनुमति
आम तौर पर, आप समान अनुमतियों के साथ फ़ाइलें और निर्देशिका सेट नहीं करेंगे। ऐसा इसलिए है क्योंकि आपको cd
. के लिए निष्पादन अनुमति की आवश्यकता है एक विशिष्ट निर्देशिका में। हालाँकि, अधिकांश फ़ाइलों को इस निष्पादन अनुमति की आवश्यकता नहीं होती है।
इसे दूर करने के लिए, आप find
. का उपयोग कर सकते हैं लिनक्स में उपयोगिता। यह आपको केवल विशिष्ट फ़ाइलों या निर्देशिकाओं को खोजने और उन पर अनुमतियाँ सेट करने की अनुमति देता है।
Linux में ढूँढें का उपयोग करने के बारे में अधिक जानकारी के लिए, इस लेख को देखें।
आइए "/ var/log" निर्देशिका लेते हैं। निर्देशिका में फ़ाइलें और निर्देशिका दोनों शामिल हैं।
केवल फाइलों के लिए विशिष्ट अनुमतियां सेट करने के लिए, हम खोज कमांड का उपयोग -type f
. के साथ कर सकते हैं विकल्प।
नीचे एक उदाहरण कमांड देखें:
sudo find /var/log/ -type f -exec chmod 777 {} ;
उपरोक्त उदाहरण में, हमने फ़ाइलों के लिए "/ var/log" निर्देशिका खोजने के लिए खोज कमांड का उपयोग किया, फिर उपयोगकर्ताओं, समूहों और सभी के लिए पढ़ने, लिखने और अनुमतियों को निष्पादित करने के लिए सेट किया।
हम निर्देशिकाओं के लिए भी यही मामला कर सकते हैं। इस मामले में, हम -type d
. निर्दिष्ट करते हैं केवल निर्देशिका प्राप्त करने के लिए।
उदाहरण के लिए:
sudo find /var/log/ -type d -exec chmod 755 {} ;
उपरोक्त उदाहरण में, हम केवल निर्देशिकाओं के लिए अनुमति 755 सेट करते हैं, फाइलों और निर्देशिकाओं दोनों के लिए नहीं।
आप इसे ls -la
. का उपयोग करके सत्यापित कर सकते हैं आदेश।
आप देखेंगे कि सभी फाइलों में 777 अनुमतियां हैं, जबकि निर्देशिकाओं में 755 अनुमतियां हैं।
समापन में
लिनक्स में फ़ाइल अनुमतियों को बदलने का तरीका जानना एक आवश्यक कौशल है, क्योंकि यह अनधिकृत पहुंच और विभिन्न फाइलों और निर्देशिकाओं में संशोधन को रोकने में मदद करता है। इस बीच, आप फ़ाइल एक्सेस को प्रतिबंधित करने के लिए फ़ाइल स्वामित्व को भी बदल सकते हैं या लिनक्स में फ़ाइल अनुमतियों के बेहतर नियंत्रण के लिए एक्सेस कंट्रोल लिस्ट का उपयोग कर सकते हैं।