एक मशीन पर एनएफएस माउंटेड सामग्री को दूसरी मशीन से रूट क्यों नहीं किया जा सकता है?


14

मेरे NFS सर्वर पर, मेरे पास निम्नलिखित निर्यात परिभाषित है:

#NFS exports Database
/shared -alldirs -network=192.168.1 -mask=255.255.255.0

मेरे NFS क्लाइंट पर:

192.168.1.7:/shared /shared nfs rw 0 0

जाहिर है, सर्वर पर रूट के रूप में, मैं जो चाहूं कर सकता हूं। हालांकि क्लाइंट पर, मेरे नियमित उपयोगकर्ता 'gabe' nfs आरोह में परिवर्तन कर सकते हैं (यह मानते हुए कि मेरे पास अनुमति है), लेकिन रूट नहीं कर सकते।

मेरे नियमित उपयोगकर्ता के रूप में:

gabe@client$ cd /shared
gabe@client$ ls -l
total 8
drwxrwxrwx  4 gabe  wheel   512 Mar 20 19:20 tmp
gabe@client$ cd tmp
gabe@client$ touch test.txt
gabe@client$ rm test.txt

जड़ के रूप में:

# cd /shared/tmp
# touch test.txt
touch: test.txt: Permission denied

फिर, यह सब चीजों के एनएफएस ग्राहक पक्ष पर है, और मुझे संदेह है कि शायद इसका -मैपरो विकल्प के साथ कुछ करना है। यह पहली बार है जब मैं NFS की स्थापना कर रहा हूं और मैंने इस विशिष्टता को देखा। मैं अब कुछ पढ़ने जा रहा हूं, यह देखने के लिए कि क्या मैं यह पता लगा सकता हूं, लेकिन अगर किसी के पास कोई अंतर्दृष्टि है, तो मैं इसकी सराहना करूंगा।

जवाबों:


18

एनएफएस को इस विचार के साथ डिजाइन किया गया था कि उपयोगकर्ता और समूह आईडी पूरे नेटवर्क में सभी मशीनों पर समान होंगे। सामान्य उपयोगकर्ताओं के लिए, यह ठीक काम करता है। लेकिन रूट का यूआईडी हमेशा 0 होता है, और सिर्फ इसलिए कि आपके पास एक बॉक्स पर रूट है, इसका मतलब यह नहीं है कि आपके पास नेटवर्क पर प्रत्येक मशीन तक रूट एक्सेस होना चाहिए।

इसलिए, एनएफएस विशेष रूप से रूट का इलाज करता है। डिफ़ॉल्ट रूप से, रूट को nobodyउपयोगकर्ता के लिए मैप किया जाता है , जिसमें सामान्य रूप से कोई लेखन पहुंच नहीं होती है। -maprootविकल्प आपको बदलने का तरीका जड़ नियंत्रित किया जाता है की अनुमति देता है। बीएसडी -maproot=rootलिनक्स के no_root_squashविकल्प से मेल खाती है ।


हाँ सचमुच। इससे मेरी समस्या ठीक हो गई। मैन पेज जो मैं पढ़ रहा था, वह थोड़ा गूढ़ था (या मेरी समझ में था) कि वास्तव में मैप्रोटॉट ने क्या किया है। धन्यवाद!
गाबा

यहाँ एक और noob। मैं सोच रहा था कि क्या आप लोगों को यह बताने का एक तरीका पता चल सकता है कि क्या NFS ड्राइव को -maprootNFS सर्वर तक पहुँच के बिना विकल्प का उपयोग करने के लिए कॉन्फ़िगर किया गया है ।
जॉन

@ जॉन, यह काफी अलग है कि आपको टिप्पणी जोड़ने के बजाय एक नया प्रश्न पूछना चाहिए।
cjm

5

पारंपरिक एनएफएस कार्यान्वयन के साथ यह सामान्य व्यवहार है। एनएफएस उपयोगकर्ता मैपिंग को संदर्भ के बावजूद किया जाता है, इसलिए क्लाइंट रूट द्वारा सभी एक्सेस को एक विशेष उपयोगकर्ता (आमतौर पर nobodyडिफ़ॉल्ट रूप से) में मैप किया जाना होता है। इसलिए यह अजीब व्यवहार, जहां क्लाइंट रूट आपकी फ़ाइलों को सीधे एक्सेस नहीं कर सकता है, लेकिन su gabeउन्हें एक्सेस करने के लिए कर सकता है।

(NFSv4 और शायद NFSv3 के "हाल के" संस्करण, दोनों पक्षों पर समर्थित होने पर सान व्यवहार की अनुमति देते हैं, लेकिन मुझे विवरण नहीं पता है।)

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