एनएफएस फ़ोल्डर के लिए अनुमतियों को ठीक से कैसे सेट करें? बढ़ते छोर पर अनुमति से इनकार किया।


46

मैं अपने देव सर्वर पर एक एनएफएस फ़ोल्डर से कनेक्ट करने की कोशिश कर रहा हूं। देव सर्वर पर फ़ोल्डर का स्वामी डैरेन और समूह डैरेन है।

जब मैं इसे निर्यात करता हूं और इसे अपने मैक पर माउंट करता हूं, तो डिस्क यूटिलिटी का उपयोग करता है, लेकिन तब जब मैं फ़ोल्डर खोलने की कोशिश करता हूं तो कहता है कि मेरे पास अनुमति नहीं है। मैंने rw, सिंक, और no_subtree_check सेट किया है। मैक पर उपयोगकर्ता समूहों का एक समूह के साथ डैरेन है।

क्या मुझे फ़ोल्डर तक पहुंचने के लिए समान समूह और उपयोगकर्ता सेट करने की आवश्यकता है?


2
आपके प्रश्न के लिए धन्यवाद, इस सूत्र ने मेरे लिए समस्या हल कर दी! लेकिन कृपया सबसे उत्थान के साथ उत्तर स्वीकार करें।
ममीउ

जवाबों:


60

NFS RPC प्रमाणीकरण के शीर्ष पर बनाया गया है। NFS संस्करण 3 के साथ, सबसे आम प्रमाणीकरण तंत्र AUTH_UNIX है। क्लाइंट सिस्टम के यूजर आईडी और ग्रुप आईडी को प्रत्येक आरपीसी कॉल में भेजा जाता है, और इन आईडी की जिन एक्सेस पर फाइल होती है, उन्हें सर्वर पर चेक किया जाता है। यह काम करने के लिए, यूआईडी और जीआईडी ​​सर्वर और क्लाइंट पर समान होना चाहिए। हालाँकि, आप all_squash, anonuid और aongid निर्यात विकल्पों के संयोजन से एकल उपयोगकर्ता और समूह के रूप में होने के लिए सभी पहुँच को बाध्य कर सकते हैं। all_squash अनाम उपयोगकर्ता के लिए सभी UID और GID को मैप करेगा, और anonuid और anongid अनाम उपयोगकर्ता का UID और GID सेट करेगा। उदाहरण के लिए, यदि आपके देव सर्वर पर आपका यूआईडी और जीआईडी ​​दोनों 1001 हैं, तो आप अपनी होम डायरेक्टरी को एक लाइन की तरह निर्यात कर सकते हैं

/home/darren 192.168.1.1/24(rw,all_squash,anonuid=1001,anongid=1001)

मैं NFS संस्करण 4 से कम परिचित हूं, लेकिन मुझे लगता है कि आप क्लाइंट पर rpc.idmapd सेट कर सकते हैं ताकि वे सर्वर पर भेजे जाने वाले यूआईडी और जीआईडी ​​को बदल सकें।


7
मैं एक Apple OS X Yosemite nfs मुद्दे को हल करने की कोशिश कर रहा था, इस जवाब पर दौड़ गया। यह उत्तर स्वीकृत उत्तर की तुलना में बहुत अधिक प्रासंगिक और सटीक है। यह उचित नहीं है और न ही पूरे सिस्टम में UID / GID का मिलान करना संभव है। सिस्टम A पर रूट उपयोगकर्ता शायद सिस्टम B पर रूट उपयोगकर्ता नहीं है
एलन

28

जब आप एनएफएस को माउंट करते हैं, तो आपकी अनुमतियाँ आपके साथ बढ़ रही होती हैं, जो आपके पास सर्वर पर होती हैं। उदाहरण के लिए, यदि आपके उपयोगकर्ता के पास केवल-केवल पहुंच है, तो इसे रीड-राइट के साथ माउंट करने से आपको अपने पोस्ट में उल्लिखित वही त्रुटियां दिखाई देंगी जब आप वास्तव में माउंट को लोड करने का प्रयास करते हैं। दुर्भाग्य से, यह केवल फ़ोल्डर को एक्सेस करते समय दिखाई देगा, न कि जब आप वास्तव में इसे माउंट करते हैं।

आप यह भी सुनिश्चित करना चाहते हैं कि उपयोगकर्ता NFS सर्वर पर चल रहा है और क्लाइंट पर उपयोगकर्ता उसी UID और GID का उपयोग कर रहे हैं। आप id darrenसर्वर और क्लाइंट दोनों पर चलकर इन मानों की जाँच कर सकते हैं । यदि यूआईडी और जीआईडी ​​मूल्य मेल नहीं खाते हैं, तो आप /etc/passwdइसे बनाने के लिए संपादित कर सकते हैं - लेकिन सुनिश्चित करें कि आप समझ रहे हैं कि आप मनमाने ढंग से बदलते मूल्यों से पहले क्या कर रहे हैं!

कुछ अच्छे स्रोत:

आशा है कि ये आपकी मदद करेगा!


हाँ, मुझे UID को बदलने की कोशिश नहीं करनी चाहिए थी मुझे अब अपने सर्वर को फिर से करना होगा। कोई यूआईडी और जीआईडी ​​की नकल कैसे करेगा? क्या वास्तव में यह जटिल है?
डैरेन

दुर्भाग्य से, कार्यस्थल में इसका उपयोग करने के मेरे अनुभव में, एनएफएस बेहद नाजुक है, और हाँ - यह इस जटिल हो सकता है। आमतौर पर, आप प्रत्येक सर्वर / क्लाइंट पर UID / GID के साथ एक समर्पित NFS उपयोगकर्ता चाहते हैं ताकि आप इस मुद्दे पर न चलें। यदि आपके पास अपने देव वातावरण में एक विकल्प है (यानी, यह NFS का उपयोग करने के लिए नहीं है), SSHFS की तरह कुछ का उपयोग कर अपने देव सिरदर्द दूर जाना होगा - लेकिन उत्पादन सर्वर का उपयोग कर के रूप में एक ही कार्यक्षमता को दोहराने नहीं होगा एनएफएस।
एंड्रयू एम।

क्या आपको लगता है कि सांबा एक और समाधान है? मैंने बिना किसी समस्या के विंडोज के साथ इसका उपयोग किया है और मैं सोच रहा हूं कि यह वही तरीका है, जबकि मुझे अपने एप्लिकेशन को विकसित करने के लिए मैक का उपयोग करना होगा।
डैरेन

यदि आप इसे स्थापित करने के लिए तैयार हैं, तो यह निश्चित रूप से एक और संभावना है।
एंड्रयू एम।

2
मुझे यह कहने में संकोच होगा कि NFS नाजुक है। यह एक लंबे समय से स्थापित फ़ाइल सेवा प्रोटोकॉल है। एनएफएस के लिए वास्तव में केवल दो आवश्यकताएं हैं: ग्राहकों के बीच यूआईडी / जीआईडी ​​सिंक्रनाइज़ और क्लाइंट और सर्वर के बीच सिंक्रनाइज़ समय। परंपरागत रूप से, एनआईएस का उपयोग उपयोगकर्ता जानकारी को सिंक्रनाइज़ करने के लिए किया गया था, लेकिन एलडीएपी पिछले दशक में नई तैनाती के लिए अधिक सुरक्षित विकल्प है।
जेफ स्ट्रंक

2

क्या आपके यूआईडी और जीआईडी ​​दोनों सर्वरों पर मेल खाते हैं? यही इसका उपयोग अभिगम और समूह नाम को नियंत्रित करने के लिए है।


-2

मेरे लिए _netdevक्लाइंट पर बढ़ते विकल्प प्रदान करके समस्या को हल किया गया था ।

यानी इसे इसमें जोड़ें /etc/fstab:

nfs-server:/   /mnt   nfs4    _netdev,auto  0  0
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.