"अन्य" कौन है, अगर हम अपने सर्वर पर सभी सेवाएं एक उपयोगकर्ता को देते हैं, "अन्य" सही नहीं हैं? उदाहरण के लिए, यदि हम अपाचे को किसी उपयोगकर्ता के /var/wwwलिए डालते हैं apache, और हम नामांकित को सेट करते हैं , और हमें इसमें प्रवेश chmod 700करना चाहिए, ठीक है?
यहाँ अनुमतियाँ कैसे काम करती हैं, बहुत ही संक्षिप्त तरीके से समझाया गया है:
पहला अंक एक फ़ाइल की वास्तविक मालिक के लिए है (जाँच जो के साथ एक फ़ाइल के मालिक है ls -lऔर साथ इसे संशोधित chown)
दूसरा अंक फ़ाइल के समूह के लिए है (हालांकि एक फ़ाइल के मालिक जरूरी एक ही समूह है कि फाइल का मालिक में नहीं होना चाहिए)
तीसरे अंकों किसी और को, जिसका अर्थ है नहीं फ़ाइल को स्वामी और समूह में हर कोई।
इसलिए यदि आप chmod700 में फाइल करते हैं और यह स्वामित्व में है apache, तो आपके "सामान्य" उपयोगकर्ता भी इसे पढ़, लिख या निष्पादित नहीं कर पाएंगे। यह बहुत ही प्रतिबंधात्मक और केवल दुर्लभ अवसरों में आवश्यक है - उदाहरण के लिए, जब आप अपनी SSH निजी कुंजी को सुरक्षित करना चाहते हैं, तो उसे 600अनुमति मिल जाती है। अपाचे के लिए, यह अन्य समस्याओं के परिणामस्वरूप भी हो सकता है, इस तथ्य के अलावा कि आपके सामान्य उपयोगकर्ता खाते के साथ, आप /var/wwwअब और किसी भी फाइल को संपादित करने में सक्षम नहीं होंगे ।
इसलिए, आम तौर पर बोलते हुए, आपको x00दूसरों के लिए पढ़ने की अनुमति ( ) को हटाने की आवश्यकता नहीं होनी चाहिए ।
आप निर्देशिका को apacheस्वयं दे सकते हैं /var/www, लेकिन 644शायद (दूसरों के लिए केवल पढ़ने के लिए)। एक और दृष्टिकोण मैं अक्सर उपयोग अपने उपयोगकर्ता जोड़ रहा है और एक नया करने के लिए अपाचे उपयोगकर्ता www-usersसमूह, और उसके बाद में फाइल chmodding /var/wwwलिए 775। इस तरह, आप और अपाचे दोनों ही फाइलों को लिख सकते हैं। अधिक जानकारी के लिए यहां देखें: अपाचे के लिए समूह की अनुमति
"निष्पादित" और "पढ़ा" के बीच अंतर क्या है?
निष्पादन योग्य फ़ाइलों को सीधे उपयोगकर्ता द्वारा चलाया जा सकता है - सीधे शेल से। इसे प्रदर्शित करने के लिए, हम एक छोटी फ़ाइल लिखते हैं और इसे "परीक्षण" कहते हैं। निम्नलिखित सामग्री जोड़ें:
echo "I am executable"
फ़ाइल सहेजें। अब, अपने शेल में, दर्ज करने का प्रयास करें ./test। आपको " -बैश: ./est: अनुमति अस्वीकृत " त्रुटि मिलेगी । ऐसा इसलिए है क्योंकि डिफ़ॉल्ट रूप से, नई बनाई गई फ़ाइलें निष्पादन अनुमतियों को पूरा नहीं करती हैं। यदि आप निष्पादन की अनुमति जोड़ते हैं, तो यह काम करेगा।
$ chmod +x test
$ ./test
I am executable
अब, यह सिर्फ एक परीक्षण स्क्रिप्ट थी, लेकिन आम तौर पर, सभी बाइनरी फ़ाइलों (जैसे संकलित प्रोग्राम) को भी निष्पादित अनुमति सेट की आवश्यकता होती है, इसलिए आप वास्तव में उनके साथ कुछ चला सकते हैं और कर सकते हैं, और न केवल पढ़ सकते हैं।
ये उदाहरण के लिए सिस्टम प्रोग्राम हैं जो अधिकतर पाए जाते हैं /bin। ls -l /binउनकी अनुमतियों का निरीक्षण करने के लिए चलाएँ । जैसा कि आप देख सकते हैं, वे स्वामित्व में हैं root, और आप उन्हें बदल नहीं सकते हैं, लेकिन आप हमेशा उन्हें निष्पादित कर सकते हैं।
तो, यह कुछ हद तक एक सुरक्षा विशेषता भी है, क्योंकि आप कुछ उपयोगकर्ताओं के लिए कुछ स्क्रिप्ट और बायनेरिज़ के निष्पादन को प्रतिबंधित कर सकते हैं।
यूनिक्स अनुमतियों के बारे में अधिक जानने के लिए, विकिपीडिया लेख पढ़ें । मूलभूत अनुमतियाँ जिन्हें आप "रीड-राइट-एक्ज़ीक्यूट" के रूप में जानते हैं, वे लंबे समय से हैं, लेकिन आप एक्सेस कंट्रोल लिस्ट को कॉल करने का सिर्फ एक हिस्सा हैं - जो इससे कहीं अधिक कार्यक्षमता प्रदान करते हैं।
क्लीन इंस्टाल (जैसे उबंटू में) के बाद पूरे सिस्टम के लिए डिफॉल्ट फाइल परमिशन क्या हैं?
वे निर्देशिका और मालिक द्वारा भिन्न होते हैं। कुछ फाइलें और निर्देशिका सिस्टम-आरक्षित और स्वामित्व में हैं root। ज्यादातर मामलों में, आप उन्हें अपने सामान्य उपयोगकर्ता खाते के साथ पढ़ सकते हैं।
आपके होम फ़ोल्डर जैसे अन्य निर्देशिका स्पष्ट रूप से आपके उपयोगकर्ता के हैं। यह मशीन पर अन्य उपयोगकर्ताओं के लिए पठन अनुमतियों को अस्वीकार करने के लिए समझ में आता है अगर यह कई व्यक्तियों के बीच साझा किया जाता है - आखिरकार, आप अपने निजी सामान को उजागर नहीं करना चाहते हैं।
अंत में, कुछ फाइलें डिफ़ॉल्ट रूप से निष्पादन योग्य होती हैं (उदाहरण के लिए /bin), लेकिन अन्य नहीं होती हैं (जैसे कॉन्फ़िगरेशन फ़ाइलें /etc)।
फ़ाइल-सिस्टम अनुक्रम स्टैंडर्ड Linux सिस्टम में पाया निर्देशिका के लिए लक्षित उपयोग निर्दिष्ट करता है। आप लगभग "अनुमान" लगा सकते हैं कि किसी निर्देशिका के साथ क्या करना चाहते हैं, इसके आधार पर अनुमतियाँ क्या होनी चाहिए।