लिनक्स एनएफएस मुखौटा बनाते हैं और उपयोगकर्ता के बराबर बल देते हैं


11

मेरे पास दो लिनक्स सर्वर हैं:

फाइलर
डेबियन 5.0.3 (2.6.26-2-686)
सांबा संस्करण 3.4.2

Apache
Ubuntu 10.04 LTS (2.6.32-23-जेनेरिक)
Apache 2.2.14

मेरे पास फाइलरवर पर कई सांबा शेयर हैं ताकि मैं विंडोज पीसी से फाइल एक्सेस कर सकूं। मैं अपाचे सर्वर /data/www-dataको भी निर्यात कर रहा हूं, जहां मैंने इसे माउंट किया है ।/var/www

सेटअप ठीक है, सिवाय इसके कि जब मैं एनएफएस माउंट पर फाइलें बनाने के लिए आता हूं। मैं उन फ़ाइलों के साथ समाप्त होता हूं जिन्हें Apache द्वारा पढ़ा नहीं जा सकता है, या जिन्हें मेरे सिस्टम पर अन्य उपयोगकर्ताओं द्वारा संशोधित नहीं किया जा सकता है।

सांबा के साथ, मैं निर्दिष्ट कर सकते हैं force user, force group, create maskऔर directory mask, और यह सुनिश्चित करता है कि सभी फाइलों को मेरी Apache वेब सर्वर के लिए उपयुक्त अनुमतियों के साथ बनाया जाता है। मुझे NFS के साथ ऐसा करने का कोई तरीका नहीं मिला। क्या एनएफएस के साथ अनुमतियों और स्वामित्व को बाध्य करने का एक तरीका है - क्या मुझे कुछ स्पष्ट याद आ रहा है?

हालाँकि मैंने लिनक्स के साथ काफी समय बिताया है, और अपने आप को विंडोज से दूर कर रहा हूँ, फिर भी मुझे लिनक्स की अनुमति नहीं मिली है ... यदि यह काम करने का सही तरीका नहीं है, तो मैं खुला हूँ वैकल्पिक सुझाव।

जवाबों:


12

यह देखते हुए कि आप विंडोज से आ रहे हैं, आप पाएंगे कि NFS .... अलग है।

आपके द्वारा चलाया जा रहा मुद्दा काफी सामान्य है। NFS मशीनों के बीच आगे / पीछे की फाइलों / निर्देशिकाओं के यूआईडी और जीआईडी ​​को इस धारणा के साथ पारित कर रहा है कि उपयोगकर्ता और समूह आईडी दोनों पर समान रूप से मैप किए गए हैं । इसका मतलब है कि आप एक स्थिति है जहाँ यूआईडी / GID सर्वर पर एक एनएफएस ग्राहक को वापस पारित हो जाता है प्राप्त कर सकते हैं, लेकिन यह ग्राहक की में मिलान नहीं कर सकते हैं /etc/passwdया /etc/groupजो पहुँच नहीं मतलब है,।

अतीत में (दूर) यह एनआईएस और एनआईएस + के साथ सह-ऑर्डिनेट किया गया था, हालांकि ऐसी अन्य योजनाएं हैं जिन्हें इस ढांचे में तैयार किया गया है (सांबा का विनबिंड उनमें से एक है)। हालांकि, इसके लिए एक केंद्रीय आईडी सर्वर की आवश्यकता होती है, जिसके बाद बहुत से हाथ से फिक्सिंग की अनुमति होती है।

इसे ठीक करने के अलग-अलग तरीके हैं, लेकिन सबसे सस्ता / तेज दोनों मशीनों पर एक ही समूह आईडी नंबर के साथ एक समूह बनाना है - कहते हैं, समूह आईडी 50000 - और उचित उपयोगकर्ता को जोड़ते हुए फ़ाइल सर्वर पर समूह बिट्स सेट करें ग्राहक पर समूह; तब पहुँच को नियंत्रित करने के लिए फ़ाइलों पर समूह अनुमतियों का उपयोग करें। एक महान समाधान नहीं है लेकिन यह काम करेगा। ध्यान दें कि आपको उन सेवाओं के साथ समस्या हो सकती है जो रनटाइम (उर्फ निजीकरण ड्रॉप) में अपने समूह को स्पष्ट रूप से बदलते हैं और आपको यह सेटिंग बदलने की आवश्यकता हो सकती है जो यह सुनिश्चित करता है कि रनटाइम पर किस समूह को यह सुनिश्चित किया जाए कि यह आपके द्वारा बनाया गया है।

उन फ़ाइलों के लिए जो एक विंडोज शेयर (उर्फ सांबा) के माध्यम से इनबाउंड आते हैं, बस समूह को आपके द्वारा बनाए गए समान होने के लिए मजबूर करते हैं। इस तरह से सभी फाइलों को स्वचालित रूप से "सही" GID मिलता है।


माना प्रतिक्रिया के लिए धन्यवाद। मैं समूह बिट्स विधि में देखूंगा, और आपको बताऊंगा कि मैं कैसे प्राप्त करता हूं।
माइक

मैंने www-dataफ़ाइल सर्वर पर एक समूह बनाया , आवश्यक उपयोगकर्ताओं को सौंपा, फिर www-dataदोनों सर्वरों पर एक ही समूह आईडी सेट किया । मैं /data/www-dataफ़ोल्डर के साथ समूह बिट्स को भी सेट करता हूं chmod -R g+s /var/www-data। यह अब पूरी तरह से काम कर रहा है। आपकी सहायता के लिए धन्यवाद।
माइक

सुन के अच्छा लगा!
अवनी पायने

अच्छा होगा अगर NFS मैक क्लाइंट्स के लिए ऐसा कर सके।
d -_- b

9

आप उस all_squashविकल्प का भी उपयोग कर सकते हैं जो सभी निर्यात की गई फ़ाइलों और फ़ोल्डर को अनाम (उपयोगकर्ता और समूह) बनाता है, और उन्हें एक विशिष्ट GID & UID में संलग्न करता है।

/data/www-data apache(rw,all_squash,anonuid=<your UID>,anongid=<your GID>,sync)

इसके साथ समस्या यह है कि apacheसर्वर पर सभी उपयोगकर्ता आपके माउंट बिंदु nobody nobodyको उपयोगकर्ता और समूह के रूप में देखेंगे , और माउंट में लिख सकते हैं (लेकिन वैसे भी, सांबा सर्वर पर, फ़ाइलों को <your UID>/ के रूप में बनाया जाएगा <your GID>)।


इससे मेरी समस्या हल हो गई!
लुसियानो एंड्रेस मार्टिनी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.