Synology NAS पर NFS के साथ यूजर आईडी मैपिंग


20

मेरे पास एक Synology NAS बॉक्स है (DSM 5.1 चल रहा है), और मैंने NFS के माध्यम से एक निर्देशिका का निर्यात किया है। मैं इसे अपने उबंटू बॉक्स पर माउंट करने का प्रयास कर रहा हूं।

यह ज्यादातर ठीक काम करता है, लेकिन मैं उपयोगकर्ता और समूह मैपिंग के साथ समस्या कर रहा हूं। उबंटू बॉक्स पर, मैं यूआईडी 1000 (रॉजर), जीआईडी ​​1000 (रॉजर) हूं। Synology पर, मेरे पास 1026 (roger), समूह 100 (उपयोगकर्ता) है।

यदि मैं NFSv3 का उपयोग करता हूं, तो यह संख्यात्मक यूआईडी / gid मानों का उपयोग करता है, जिसका अर्थ है कि स्वामित्व Synology पर गड़बड़ है।

अगर मैं कभी भी एक ही उबंटू बॉक्स से NFS माउंट को एक्सेस करने के लिए था, तो उसी उपयोगकर्ता का उपयोग करके, यह ठीक होगा, लेकिन मैं भी CIFS (SMB) का उपयोग करते हुए विंडोज बॉक्स से डायरेक्टरी को एक्सेस करता हूं, जिसका अर्थ है कि अनुमतियाँ हैं गलत।

यदि मैं SynFS mount -o nfsvers=4पर डिफ़ॉल्ट सेटिंग्स के साथ NFSv4 ( ) का उपयोग करता हूं , तो Ubuntu बॉक्स से देखे जाने roger.usersपर Synology के स्वामित्व वाली फाइलें स्वामित्व में दिखाई देती हैं roger.users। यह अच्छा है।

हालाँकि, जब मैं touchएक फ़ाइल:

roger@ubuntu$ touch /mounts/diskstation/music/foo

यह 1000.1000Synology पर स्वामित्व के साथ समाप्त होता है , और nobody.4294967294Ubuntu बॉक्स से देखे जाने पर स्वामित्व के रूप में दिखाया जाता है ।

सब कुछ जो मैं इस विषय पर पा सकता हूं कि Synology मंचों पर 2011 से दिनांकित है, जब NFSv4 का समर्थन नहीं किया गया था, या इसमें एक ही सवाल पूछने वाले लोगों का समावेश था और फिर दे रहा था।

पूर्णता के लिए, /etc/exportsहै:

/volume1/music  10.0.0.0/24(rw,async,no_wdelay,root_squash,insecure_locks,sec=sys,anonuid=1025,anongid=100)

... और मैं इसे उबंटू बॉक्स पर रख रहा हूँ:

mount -t nfs diskstation:/volume1/music /mounts/diskstation/music/ -o rw,nfsvers=4

मुझे कुछ संकेत मिले कि sec=sysसमस्या हो सकती है: क्यों NFSv4 uid / gid मैपिंग AUTH_UNIX (AUTH_SYS) के साथ काम नहीं करता है , लेकिन इसका कोई हल नहीं है।

क्या इस समस्या को हल करने का कोई सरल तरीका है? क्या इसे हल करने के लिए एक और अधिक जटिल ( खांसी केर्बोस खांसी ) तरीका है?

गंभीरता से, अगर केर्बरोस का जवाब है, तो मैं उस हिट को ले जाऊंगा, लेकिन मैं उस पर समय का एक गुच्छा बर्बाद करने से पहले जानना चाहता हूं।

अद्यतन : जबकि Synology प्रलेखन विभिन्न Kerberos विकल्पों के बारे में बात करता है, मैं उन्हें UI में नहीं ढूंढ सकता। रिलीज नोट्स राज्य "यदि Kerberos सुरक्षा स्वाद कार्यान्वित किया जाता है ..."। मैंने पाया (लेकिन फिर से नहीं मिल सकता है) एक पृष्ठ है जिसका अर्थ है कि यह कुछ मॉडलों पर नहीं हो सकता है। मेरे पास DS211 है, सिस्टम सूचना पृष्ठ के अनुसार। शायद मैं किस्मत से बाहर हूं?


ldap सर्वर को अलग से कॉन्फ़िगर करें। फिर NFS क्लाइंट (आपका ubuntu बॉक्स) पर, ldap क्लाइंट को कॉन्फ़िगर करें। इसके अलावा nfs क्लाइंट मशीन (ubuntu) पर एनएफ़एस शेयरों (एनएएस से) को स्वचालित करने के लिए ऑटोफ़ोर्स सेवा को कॉन्फ़िगर करें। एनएफएस क्लाइंट पर, उपयोगकर्ता की सामग्री तक पहुंचने के लिए ssh उपयोगकर्ता बनाएं
Sathish

@DavidPostill, मैं समझता हूँ कि आप इस प्रश्न पर [समानार्थी] टैग को क्यों हटा रहे हैं। छोड़कर: यह सवाल है Synology DiskStation सॉफ्टवेयर के लिए विशिष्ट - या बल्कि, मुझे लगता है कि सॉफ्टवेयर, सामान्य रूप में नहीं NAS पर लागू होने वाला एक समाधान के लिए देख रहा हूँ। एक डिस्कस्टेशन टैग नहीं है, और मेरे पास अभी तक एक बनाने के लिए पर्याप्त प्रतिनिधि नहीं है।
रोजर लिप्सकॉम्ब

कृपया ध्यान दें कि एक सामुदायिक चर्चा के अनुसार उस टैग को हटा दिया जा रहा है कि जेनेरिक टैग जो केवल एक कंपनी के साथ करना है उसे हटा दिया जाना चाहिए। ध्यान दें कि इस साइट पर टैग निर्माण केवल 300 प्रतिष्ठा की आवश्यकता है; पर्यायवाची-डिस्कोस्टेशन टैग बनाने के लिए स्वतंत्र महसूस करें ।
gparyani

जवाबों:


8

NFSv4 ID मैपिंग को ठीक से काम करने के लिए, क्लाइंट और सर्वर दोनों को idmapdID Mapper डेमन चलाना चाहिए और उसी में Domainकॉन्फ़िगर होना चाहिए /etc/idmapd.conf

इस तरह से आपका एनएफएस क्लाइंट roger@example.comतार पर एनएफएस कमांड के रूप में अपनी आईडी क्रेडेंशियल भेजता है , और एनएफएस सर्वर पर उपयोगकर्ता के लिए आपके एनएफएस सर्वर आईडीमैप मैप करता है roger। यूआईडी और जीआईडी ​​कोई फर्क नहीं पड़ता, वे प्रत्येक सिस्टम पर idmapper द्वारा मैप किए जाते हैं।

हालाँकि मैं अपनी Synology पर इससे परेशान नहीं हूँ। मेरे साझा फ़ोल्डर में निम्नलिखित अनुमतियाँ हैं:

  • अनुमतियां
    • स्थानीय उपयोगकर्ता
      • व्यवस्थापक = पढ़ें / लिखें
  • एनएफएस अनुमतियाँ
    • स्क्वाश
      • व्यवस्थापक करने के लिए सभी उपयोगकर्ताओं को मैप करें

इसका परिणाम anonuid=1024,anongid=100( adminउपयोगकर्ता और usersसमूह) /etc/exportsNAS पर निर्यात में जोड़ा जा रहा है ।

मेरा एनएफएस क्लाइंट (जिसके पास आईडी मैपर नहीं चल रहा है) मेरे एनएफएस कमांड को अपने उपयोगकर्ता ( 1000:1000) के रूप में भेजता है और क्योंकि यूआईडी और जीआईडी ​​एनएएस पर मौजूद नहीं है, यह मेरे यूआईडी और जीआईडी ​​का अनुवाद करता है 1024:100इसलिए मुझे माना जाता है। उपयोगकर्ता को पूर्ण अनुमति दें।

यह एक व्यावसायिक वातावरण के लिए एनएफएस का एक बहुत ही गैर-लाभकारी और असुरक्षित उपयोग है, लेकिन मेरे लिए घर पर अपनी फ़ाइलों का उपयोग करने के लिए यह एनएफएस व्यवहार का दुरुपयोग है जो मुझे स्वीकार्य है।

एक और विकल्प rogerएनएफएस क्लाइंट और एनएएस पर समान यूआईडी और जीआईडी बनाना है , फिर आप बिना आईडी मैपिंग के एनएफएसवी 4 का उपयोग कर सकते हैं, या फिर आप एनएफएसवी 3 का उपयोग कर सकते हैं जो केवल यूआईडी और जीआईडी ​​पर निर्भर करता है।


1
यह ब्रह्मांड का एकमात्र स्थान हो सकता है जो होम लिनक्स उपयोगकर्ताओं के लिए एक उचित समाधान का दस्तावेज है जिसे नेटवर्क वातावरण में एनएफएस प्रदान करने वाली पूर्ण सुरक्षा की आवश्यकता नहीं है। Ubuntu 19.4 और DSM 6.2.2 के लिए काम करता है।
वनअलबर्ट

1

मैं वास्तव में उसी समस्या से जूझ रहा हूं। मैं Synology पर डॉकर के साथ Kerberos सर्वर स्थापित करने के विशाल दर्द से गुजरा, ID मैपिंग सेट किया, और मुझे अभी भी व्यवहार पसंद नहीं आया। केर्बोस वैसे भी बहुत अधिक इंजीनियर है और रिबूट और ऑटोमाउंटिंग पर काम करना मुश्किल है। साथ ही, नई बनाई गई फ़ाइलों का डिफॉल्ट umask 0000 था, और हर नई फाइल को मोड 777 बनाया गया था, इससे कोई फर्क नहीं पड़ता कि मेरा स्थानीय ऑमस्क क्या था।

मेरा समाधान सुपरमामी के समान था, लेकिन मैंने इसे थोड़ा आगे ले लिया:

  • Synology वेब UI के साथ एक नया उपयोगकर्ता बनाएं, इसे कुछ इस तरह नाम दें roger.remote। उपयोगकर्ता समूह के लिए भी ऐसा ही करें, और इसे उपयोगकर्ता नाम के समान नाम दें।
  • Synology को रूट के रूप में, संपादित करें / etc / passwd और बदलकर roger.remoteUID को 1000, और GID को 1000
  • / etc / group को एडिट करें और ग्रुप roger.remoteको 1000 में बदलें
  • Synology वेब UI में, "सभी उपयोगकर्ताओं को व्यवस्थापक" और सहेजने के लिए स्क्वैश सेट करें
  • रूट के रूप में, संपादित करें / आदि / निर्यात और UID / GID को बदलें anonuid=1000,anongid=1000
  • NFS के साथ पुनरारंभ करें /usr/syno/etc.defaults/rc.sysv/S83nfsd.sh restart
  • यह भी थोड़ा हैकरी है - लेकिन chmod 777 /volume1। मुझे अपने घर निर्देशिका मुहिम शुरू करने के साथ कई अजीब समस्याएं थीं। केडीई शुरू नहीं होगा क्योंकि glibc access()फ़ंक्शन एनएफएस निर्देशिका पर आरोहित होने से इनकार कर देगा। (लेकिन कोई भी उपनिर्देशिका काम करेगी) फ़ायरफ़ॉक्स की भी एक ऐसी ही समस्या थी, जहाँ उसने एक्सेस चेक के कारण माउंटेड डायरेक्टरी में फाइलों को सेव करने से मना कर दिया था। भले ही अनुमतियाँ सही थीं, और मैं माउंटेड डायरेक्टरी में फाइलों को टच / क्रिएट / लिख सकता था। माता-पिता / वॉल्यूम 1 निर्देशिका को विश्व की योग्यता में बदलना उस गूंगी समस्या को ठीक करता है और क्लाइंट ऐप्स को इसे लिखने के लिए बेवकूफ बनाता है।
  • शेयर से सभी फाइल सिस्टम ACL को हटा दें। बहुत सारे यादृच्छिक प्रयोग के माध्यम से, मैंने पाया कि ये एसीएल बनाई गई फाइलों के मोड मास्क के साथ समस्याएं पैदा करते हैं। मैं एक एसीएल मास्टर नहीं हूं, इसलिए शायद अधिक सुरुचिपूर्ण समाधान है। Synology पर जड़ के रूप में, करते हैं synoacltool -del /volume1/myshare। आपको +ls -l आउटपुट से हटाए गए प्रतीक को देखना चाहिए ।
  • अपने नए उपयोगकर्ता को शेयर का स्वामित्व बदलें: chown roger.remote:roger.remote /volume1/myshare
  • मोड को 755 में बदलें: chmod 755 /volume1/myshare
  • क्लाइंट पर वॉल्यूम माउंट करें, अनुमतियों का परीक्षण करें, यह काम करना चाहिए! एक फ़ाइल को भी स्पर्श करना सुनिश्चित करें और सत्यापित करें कि आपका बैश ऑमस्क सही तरीके से लगाया गया है।
$ umask 
0002
$ cd / mnt / myshare
$ स्पर्श परीक्षण
$ ls -l परीक्षण
-rw-rw-r-- 1 रोस्टर रोगर 0 अक्टूबर 21 18:15 टेस्ट

धर्मशास्त्र पर आपको देखना चाहिए:

# ls -l / volume1 / myshare / test
-rw-rw-r-- 1 roger.remote roger.remote 0 अक्टूबर 21 18:15 परीक्षण

का आनंद लें!

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