एक मानव-मित्र सांबा का नामकरण


11

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

और चूंकि हम ज्यादातर उबंटू का उपयोग करते हैं, इसलिए हम विंडोज पर इसके लाभों का लाभ उठाना पसंद करते हैं, जैसे कि \:*?"<>|एक फ़ाइल नाम में वर्णों का उपयोग करने में सक्षम होना । बेशक, समस्या यह है कि विंडोज़ उन पात्रों को फ़ाइल नामों में स्वीकार नहीं करता है, और इसलिए सांबा को फ़ाइल का नाम कुछ अधिक स्वीकार्य है। जिस तरह से यह करता है, हालांकि, मुझे अप्रिय लगता है।

Episode 182 - Exorcist 2: The Heretic.mp4उदाहरण के लिए फ़ाइल का नाम बदल जाता है E4Q82R~Y.MP4। यह एक भयानक "सुधार" है। क्या सांबा के मानवों को मनुष्यों के प्रति थोड़ा अधिक अनुकूल बनाने का एक तरीका है? क्या Episode 182 - Exorcist 2_ The Heretic.mp4इसके बदले कुछ "सही" करना संभव है , जहां अवैध पात्रों को बस प्रतिस्थापित किया जाता है?


1
सांबा मेलिंग सूची में इस पैच का विवरण देखें । वर्णित विधि आउट-ऑफ-द-बॉक्स के साथ काम कर रही है Samba 4.1.4-Debian
17

@ मैं यह कोशिश कर चुका हूं, लेकिन यह तब भी मेरे लिए काम नहीं करता है, जब मैं अवैध खिड़कियों के पात्रों के साथ फाइलों को अपने सांबा हिस्से में कॉपी करता हूं। यह केवल उन चीजों को परिवर्तित करने के लिए काम करता है जो ठीक होता (जैसे कि एक प्रतीक में परिवर्तित किया गया स्थान), लेकिन उन चीजों के लिए नहीं जो काम नहीं करती (जैसे ':' दूसरे प्रतीक में परिवर्तित)। कोई संकेत?
pd12

जवाबों:


11

mangled map अब पदावनत हो गया है और अब सांबा के नए संस्करणों में काम नहीं करेगा।

समस्या को हल करने के लिए आप vfs_catia का उपयोग कर सकते हैं । निम्नलिखित पंक्तियों को smb.conf में जोड़ें:

vfs objects = catia
catia:mappings = 0x003a:0x2236,0x003f:0x0294,0x002a:0x2217,0x003c:0x276e,0x003e:0x276f,0x0022:0x02ba,0x007c:0x2223,0x005c:0x29f9

मैपिंग एक बृहदान्त्र द्वारा अलग किए गए 0x उपसर्ग हेक्साडेसिमल वर्ण कोड के साथ निर्दिष्ट किया गया है। प्रदान की गई मैपिंग उन गैरकानूनी वर्णों को हटा देगी, जो किसी भी भाषा में उपयोग किए जाने की संभावना नहीं है।

:? * <> "| \
∶ \ \ \ \ \ \ \ \

कोड के तहत [global]या एक व्यक्तिगत [share]अनुभाग में रखा जा सकता है । इसे रखने से [global]प्रदर्शन प्रभावित हो सकता है।

ध्यान दें कि आपके द्वारा मैप किए गए किसी भी चरित्र का उपयोग सर्वर पर फ़ाइल नाम में नहीं किया जा सकता है या वे दुर्गम होंगे।

उदाहरण: file❮name.txtसर्वर पर नामित एक फ़ाइल तक पहुँचने वाला एक विंडो क्लाइंट file<name.txtमैपिंग के कारण सर्वर से अनुरोध करेगा , जिसके परिणामस्वरूप फ़ाइल में त्रुटि पाई जाएगी।


मैंने यह कोशिश की है, लेकिन यह तब भी मेरे लिए काम नहीं करता है जब मैं अपने सांबा के हिस्से में अवैध विंडोज़ पात्रों के साथ फाइलें कॉपी करता हूं। यह केवल उन चीजों को परिवर्तित करने के लिए काम करता है जो ठीक होता (जैसे कि एक प्रतीक में परिवर्तित किया गया स्थान), लेकिन उन चीजों के लिए नहीं जो काम नहीं करती (जैसे ':' दूसरे प्रतीक में परिवर्तित)। कोई संकेत?
pd12

2
यह महान काम करता है! ध्यान देने वाली एक बात यह है कि आप एक ही चरित्र के लिए सब कुछ मैप नहीं कर सकते हैं, और आपके उदाहरण में, कुछ भी जो एक्टली में एक अंडरस्कोर है, वह अब सुलभ नहीं होगा। इसके बजाय मैंने निम्न मैपिंग का उपयोग किया: और 0x3a:0x7e 0x3f:0x5eइसलिए :बन जाता है । ~?^
जेफ्री

2

में इस लिंक आप mangling विकल्प देख सकते हैं। मुझे लगता है कि पहले आपको विकल्प को निष्क्रिय कर देना चाहिए:

mangled names

उसके बाद मुझे लगता है कि नामों को बेहतर दिखना चाहिए ...

बृहदान्त्र को बदलने के लिए जैसे इस लाइन का उपयोग करें:

mangled map =(: _)

आप इस तरह से और अधिक नियम जोड़ सकते हैं:

mangled map =(: _) (foo bar)

(बार द्वारा फू की किसी भी घटना को प्रतिस्थापित करता है)


वे अब बेहतर दिखते हैं। वास्तव में, जब मैंने "मैंगल्ड नाम" को "नहीं" सेट किया, तो विंडोज में फ़ाइल नाम पूरी तरह से अपरिवर्तित दिखाई देते हैं। हालांकि यह निश्चित रूप से बेहतर दिखता है, यह विंडोज़ एप्लिकेशन को फाइलों को खोलने में असमर्थ बनाता है। अगर मैं tes:t.txtनोटपैड में फ़ाइल खोलने की कोशिश करता हूँ, उदाहरण के लिए, मुझे बताया गया है कि "[...] \ tes: t.txt फ़ाइल नहीं ढूँढ सकता।" वही अपने संबंधित अनुप्रयोगों में अन्य "अवैध" फाइलों के साथ जाता है।
एलेक्स

मेरा जवाब संपादित किया!
माइकल के

mangled mapसांबा से हटा दिया गया है। चारों ओर से देखने के बाद जो कुछ मैं बता सकता हूं, वह वर्षों पहले हटा दिया गया था। log.smbdअगर मैं इसे इस्तेमाल करने की कोशिश करता हूं तो मेरी फाइल यही कहती है:Ignoring unknown parameter "mangled map"
एलेक्स

आप सही हैं ... पदावनत। यह काम नहीं करेगा। यह इतना आसान नहीं है - जटिल फ़ाइल का नाम डेम नाम वाली दो फ़ाइलों को रोकने के लिए है। फ़ाइल foo: .txt और foo_.txt मौजूद हो सकती है और फिर आपका नाम बदलना विफल हो जाएगा। तो सबसे अच्छा यह होगा कि फ़ाइल नाम नियमों को लागू किया जाए ताकि केवल उन नामों की अनुमति हो जो दोनों फ़ाइल सिस्टम में अनुमत हैं।
माइकल के
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.