सांबा फिल्नाम में विशेष पात्र


18

सांबा के माध्यम से फ़ाइल नाम में "() ?:" जैसे विशेष वर्ण वाली फ़ाइलों की सेवा करते समय, नाम एक अपरिचित प्रारूप में बदल जाते हैं। उदाहरण के लिए, एक फ़ाइल

my_file:_(important).txt

के रूप में प्रदर्शित किया जाता है

M43J1E~0.TXT

क्या इस व्यवहार से बचने का एक तरीका है (फ़ाइलों का नाम बदले बिना, जाहिर है)? मैं मान रहा हूं कि वर्ण एन्कोडिंग को दोष नहीं देना है क्योंकि कई UTF-8 वर्ण ठीक काम करने लगते हैं।


सांबा संस्करण 2: 3.4.0-3ubuntu5.5 उबंटू 9.10 पर
मैटी

3
Smb.conf में "mangled name = no" जोड़कर इसे हल किया (धन्यवाद, डेनिस विलियमसन)।
मत्ती

जवाबों:


10

विंडोज फाइलनाम में कुछ पात्रों की अनुमति नहीं देता है जो यूनिक्स की अनुमति देता है। सांबा "फाइल" को विंडोज प्रतिबंधों का अनुपालन करने के लिए फाइलनाम करता है। आप फ़ाइल की जांच कर सकते हैं /etc/smb.confया /etc/samba/smb.confयह देख सकते हैं कि कौन-सी सेटिंग्स हैं। उन सेटिंग्स को दिखाने के लिए जो डिफ़ॉल्ट हैं, इस कमांड का उपयोग करें:

testparm -vs | less

इसे थोड़ा कम करने के लिए:

testparm -vs|grep "case\|mangl"

देखें इस पेज में अधिक जानकारी के लिए। इसके अलावा, इस पृष्ठ के बारे में आधा रास्ता देखें (पिछली लिंक के समान जानकारी)।


9

मैं ओएस-एक्स और विंडोज पर एक साझा फ़ोल्डर का उपयोग करता हूं। कुछ फ़ाइलों में एक ही समस्या है, क्योंकि वे निम्नलिखित में आते हैं: वे फ़ाइल नाम में वर्णों का उपयोग करते हैं, विंडोज द्वारा समर्थित नहीं है।

देखें: http://support.microsoft.com/kb/177506

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

A filename cannot contain any of the following characters:
\ / : * ? " < > |

थोड़ा और नीचे, उन्होंने लिखा:

वर्ण जो फ़ाइल, फ़ोल्डर या शॉर्टकट के नामकरण के लिए मान्य हैं, उनमें अक्षरों (AZ) और संख्याओं (0-9) का कोई संयोजन शामिल है, साथ ही निम्नलिखित विशेष वर्ण:

^   Accent circumflex (caret)
&   Ampersand
'   Apostrophe (single quotation mark)
@   At sign
{   Brace left
}   Brace right
[   Bracket opening
]   Bracket closing
,   Comma
$   Dollar sign
=   Equal sign
!   Exclamation point
-   Hyphen
#   Number sign
(   Parenthesis opening
)   Parenthesis closing
%   Percent
.   Period
+   Plus
~   Tilde
_   Underscore

लेकिन, मैंने व्यक्तिगत रूप से, कुछ ग्राहकों को यहां ब्रीफिंग के लिए एक संदर्भ के रूप में बिना अनुमति के वर्णों की सूची ले ली;)


7
  • मेरे पास Apple मैकबुक प्रो लैपटॉप है जिसमें 64-बिट OS X 10.11 "एल कैपिटन" है जो सांबा 3 को चला रहा है जिसे मैंने मैकपोर्ट्स के माध्यम से स्थापित किया है ।

  • मेरे पास 64-बिट GNU / Linux XUbuntu 16.04 "Xenial Xerus" वाला सांबा 3 है जिसे मैंने APT के माध्यम से स्थापित किया है।

दोनों मशीनों में नेटवर्क-साझा किए गए फ़ोल्डर हैं और मेरे WLAN (वायरलेस लैन) पर संचार करने के लिए सांबा का उपयोग करते हैं।

मेरी दोनों प्रणालियाँ ब्राज़ीलियाई पुर्तगाली में हैं। इस प्रकार, मैं ç , á , ã , â , ô , é , ó et cetera जैसे विशेष पात्रों का उपयोग करता हूं ।

जब मैं अपने OS X सांबा के शेयरों को एक्सेस करने के लिए अपने लिनक्स लैपटॉप का उपयोग करता हूं, तो सभी तार सही तरीके से दिखाए जाते हैं: maçã , ônus और bênção जैसे शब्द सही तरीके से दिखाए जाते हैं। लंबे नाम वाली फाइलें और फ़ोल्डर भी दिखाए गए हैं, और उनके नाम सही तरीके से दिखाए गए हैं। इस प्रकार, ओएस एक्स पर चलने वाला सांबा सर्वर पहले से ही ठीक से कॉन्फ़िगर किया गया है ...

... लेकिन चीजें दूसरे तरीके से काम नहीं कर रही थीं: अगर मैंने अपने लिनक्स सांबा के शेयरों तक पहुंचने के लिए ओएस एक्स पर फाइंडर ऐप का इस्तेमाल किया, तो उन सभी फाइलों और फ़ोल्डरों में से एक जिनमें से कम से कम एक विशेष वर्ण नहीं दिखाया गया था (वे अदृश्य रहे। मुझे), और फ़ाइलों और फ़ोल्डरों के लंबे नामों को अजीब छोटे नामों में बदल दिया गया। इस प्रकार, मेरे लिनक्स मशीन पर चल रहे सांबा सर्वर में कुछ गड़बड़ थी।

=> मेरे मामले में, इस समस्या का हल क्या मेरी लिनक्स मशीन पर फ़ाइल के [global]अंदर अनुभाग में निम्नलिखित पंक्तियों को जोड़ रहा था smb.conf:

mangled names = no
dos charset = CP850
unix charset = UTF-8

उसके बाद, मैंने एक शेल टर्मिनल विंडो खोली और इस कमांड के साथ लिनक्स सांबा सर्वर को फिर से शुरू किया:

sudo service smbd restart

... जिसे इस अन्य कमांड से बदला जा सकता है (यदि ऊपर की कमांड आपके लिनक्स वितरण पर काम नहीं करती है):

sudo systemctl restart smbd.service

लिनक्स सांबा सर्वर को पुनः आरंभ करने के बाद, ओएस एक्स पर खोजक ऐप ने अंत में उन सभी फाइलों और फ़ोल्डरों को सही ढंग से दिखाया जो उनके नाम एक या अधिक विशेष वर्णों के होने के कारण पहले से छिपे हुए थे। मैंगल्ड ("छोटा") नाम भी "अनमैंगल्ड" था।

फ़ुटनोट्स :

  1. जीएनयू / लिनक्स सिस्टम में, smb.confफ़ाइल का मानक स्थान है/etc/samba/smb.conf
  2. यह मानते हुए कि आपके लिनक्स सिस्टम में smb.confमानक स्थान पर फ़ाइल संग्रहीत है /etc/samba/: smb.confफ़ाइल को संपादित करने के कई अलग-अलग तरीके हैं । उदाहरण के लिए, यदि आप एक डेस्कटॉप वातावरण उपयोग नहीं कर रहे (आपके सिस्टम जैसे ही एक खोल टर्मिनल, कोई खिड़की है) आप स्थापित कर सकते हैं नैनो जैसे एक आदेश जारी करके, पाठ संपादक sudo apt-get install nano -yया sudo dnf -b -y install nanoया कुछ और (निर्भर करता है जिस पर लिनक्स आप distro उपयोग कर रहे हैं), और फिर चला sudo nano /etc/samba/smb.conf। मामले में आप एक डेस्कटॉप वातावरण का उपयोग कर रहे हैं, तो आप इस तरह के रूप में एक चित्रमय पाठ संपादक स्थापित कर सकते हैं सूक्ति संपादित करें जैसे एक आदेश जारी करके, sudo apt-get install gedit -yया sudo dnf -b -y install geditया कुछ और (निर्भर करता है जिस पर Linux distro आप उपयोग कर रहे), और फिर से चलाने के sudo gedit /etc/samba/smb.conf
  3. सांबा 3+ में, display charsetपैरामीटर पदावनत है।
  4. dos charsetपैरामीटर का समर्थन नहीं करता UTF-8तर्क। इस प्रकार, यह डिफ़ॉल्ट तर्क का उपयोग करना चाहिए CP850
  5. mangled names = noसांबा सर्वर को फाइलों और फ़ोल्डरों के लंबे नामों को छोटा करने का निर्देश नहीं देता है। इसलिए, क्योंकि सांबा क्लाइंट केवल उपयोगकर्ता को बताता है कि सांबा सर्वर ने ग्राहक को क्या प्रदान किया है, एक बार सर्वर ठीक से कॉन्फ़िगर होने के बाद ग्राहक अब उपयोगकर्ता को कोई छोटा नाम नहीं दिखाएगा।

4

सांबा प्रलेखन से आप इन का उपयोग कर सकते हैं:

dos charset = ISO8859-1
unix charset = ISO8859-1
display charset = ISO8859-1

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