आप साझा किए गए पथ के बाहर सांबा का अनुसरण कैसे करते हैं


61

यह उबंटू सर्वर 10.04 64 और सांबा 3.4.7 है।

मेरे पास एक साझा निर्देशिका है /home/mit/shareऔर एक और एक है /home/tempजिसे मैं साझा किए गए लिंक में जोड़ता हूं:

ln -s /home/temp /home/mit/share/temp

लेकिन विंडोज़ पर, इंटरनेट का उपयोग करने के बाद, मैं नहीं खोल सकता S:/temp, लेकिन लिनक्स पर यह /home/mit/share/tempअपेक्षित रूप से एक्सेस करना संभव है।

यह काम करता है अगर मैं निर्देशिकाओं को अंदर लिंक करता हूं /home/mit/share/temp, तो मुझे लगता है कि सांबा साझा निर्देशिका के बाहर / ऊपर एक लिंक के साथ कूदने के लिए प्रतिबंधित है।

संपादित करें:

यह सवाल उबंटू + नवीनतम सांबा संस्करण शीर्षक से भी देखें , सहानुभूति अब विंडोज में माउंट किए गए शेयर पर काम नहीं करती है

यह unix extensions = noवैश्विक अनुभाग में follow symlinks = yesऔर wide links = yesकेवल शेयर अनुभाग में डालना सबसे अच्छा लगता है , जहां आपको वास्तव में इसकी आवश्यकता है।

unix extensionझंडा वैश्विक अनुभाग में और व्यक्तिगत शेयरों वर्गों में नहीं रहना पड़ता है। लेकिन सुरक्षा कारणों से अन्य विकल्पों का उपयोग करना बेहतर है जहां आपको इसकी आवश्यकता है, न कि विश्व स्तर पर।


क्या आप सिमिलिंक के बजाय हार्डलिंक आज़मा सकते हैं?
फाल्मरी

जवाबों:


92

Smb.conf संपादित करें

[global]
unix extensions = no

[share]
follow symlinks = yes
wide links = yes

नोट: यदि आप सांबा के नए संस्करण का उपयोग कर रहे हैं, तो इसके बदले निम्नलिखित आपके लिए काम कर सकते हैं:

[global]
allow insecure wide links = yes

[share]
follow symlinks = yes
wide links = yes

दस्तावेज़ follow symlinksऔर wide linksझंडे: https://www.samba.org/samba/docs/using_samba/ch08.html#samba2-CHP-8-TABLE-1


ऊपर दिए गए प्रश्न के अंत में स्पष्टीकरण भी देखें कि यह एक अच्छा समाधान क्यों है।
मीत

मामले में, कोई और व्यक्ति उन सभी कमेंटरी के साथ संघर्ष करता है जो इस छोटी फ़ाइल को बाधित करते हैं: एक बैकअप पर कॉपी करें, और फ़िल्टर को फिर से बनाएं: 1: cp /etc/samba/smb.conf /etc/samba/smb.conf.bak2:grep -o '^[^#;]*' smb.conf.bak >smb.conf
फ्रैंक नॉक

क्या [share]मतलब है [<share_name>]?
नेकटविट

@neckTwi - यही मैंने ग्रहण किया, और यह मेरे लिए काम किया।
ज्योफ

@Geoff कि मेरे लिए काम नहीं किया! sshfs
नेकटवेई

11

अभिवादन, मैंने इसे अपने सेटअप के लिए विंडोज़ के लिए सिम्लिंक्स ठीक करने के लिए कॉन्फ़िगरेशन में डालने की कोशिश की है, लेकिन मुझे यकीन नहीं है कि यह विंडोज़ क्लाइंट को प्रभावित करेगा, अन्यथा जब मैं इस बॉक्स से जुड़ता हूं तो यह सिम्लिंक्स का अनुसरण करता है।

[global]                                                                        
unix extensions = no

: Qiqi के जवाब के साथ इस एक बात से सहमत हैं superuser.com/questions/128716/...
जानूस

हां, यह निश्चित रूप से मेरे वातावरण में समस्या को ठीक करता है।
टीएमएल

10

अन्य उत्तरों के लिए वैकल्पिक रूप से, यूनिक्स एक्सटेंशन को सक्षम रखने के लिए, इसका उपयोग करना संभव है:

[global]
allow insecure wide links = yes

[share]
follow symlinks = yes
wide links = yes

क्या [share]मतलब है [<share_name>]?
नेकटावी

हां, यह कोई भी smb.conf खंड हो सकता है जो 'एक साझा संसाधन (जिसे "शेयर" के रूप में जाना जाता है) का वर्णन करता है (प्रलेखन से उद्धृत)। यह एक विशेष खंड में भी हो सकता है [homes], जहां मैं इसका उपयोग करता हूं। देखें प्रलेखन जानकारी के लिए।
user1182474

4

सांबा क्लाइंट को साझा पथ के बाहर सहानुभूति का पालन करने की अनुमति देने के लिए, आपको सांबा कॉन्फ़िगरेशन में सभी की आवश्यकता है:

[global]
allow insecure wide links = yes
unix extensions = no

[myShare]
wide links = yes

(सांबा के अलावा, निश्चित रूप से खुद को साझा करता है)। यह -आर्थिक रूप से * निक्स क्लाइंट के लिए पर्याप्त है।

NB: "सिम्बलिंक का पालन करें" निर्देश आवश्यक नहीं है क्योंकि यह "हाँ" के लिए चूक है

विंडोज ग्राहकों के लिए, 1 सेटिंग अभी भी गायब है, ताकि वे ऐसे लिंक का पालन कर सकें। ऐसा करने के लिए :

  1. एक Windows शेल खोलें जिसमें व्यवस्थापक विशेषाधिकार हैं
  2. Daud :

    fsutil behavior set SymlinkEvaluation L2L:1 R2R:1 L2R:1 R2L:1
    
  3. सेटिंग्स को पुनः लोड करने के लिए रीबूट करें

NB: विंडोज रजिस्ट्री को संपादित करके उसी परिणाम को प्राप्त किया जा सकता है। नीचे लिंक देखें

स्रोत:


0

यदि आप AppArmor चला रहे हैं, तो आपको केवल सांबा कॉन्फ़िगरेशन फ़ाइल से अधिक पता करने की आवश्यकता हो सकती है।

आपको अपने निर्देशों में निम्नलिखित निर्देशों की आवश्यकता है smb.conf:

follow symlinks = yes
wide links = yes
unix extensions = no
# No need for "allow insecure wide links" unless you want "unix extensions = yes"

लेकिन, AppArmor अपने नियम के शब्दार्थ के अनुसार फ़ाइल सिस्टम के कुछ हिस्सों तक पहुँच को अवरुद्ध करता है। इसलिए, अगर सांबा के भीतर आपकी सहानुभूति एक ऐसे स्थान की ओर इशारा करती है, जिसे AppArmor ब्लॉक करेगा, तो सांबा पहुंच से इनकार करेगा।

मेरे सिस्टम पर, सांबा सेवा शुरू / बंद होने पर AppArmor प्रोफाइल को अपडेट करता है, इसलिए मैं एक AppArmor प्रोफाइल को बदल सकता हूं, लेकिन सांबा या किसी अन्य प्रोग्राम को अधिलेखित करने का जोखिम उठा सकता हूं। इसके बजाय, मैंने सांबा में एक दुर्गम हिस्सा बनाने का फैसला किया, जिसमें उस स्थान को संदर्भित किया गया था जिसमें समिंक लक्ष्य था जिसे मैं (अभी भी smb.conf) एक्सेस करना चाहता था :

# The following is a hack for AppArmor to allow the path
[share1 for AppArmor] # Or whichever name you choose
    browseable = no
    path = /home # Point to directory or parent directory of the location to access
    read only = yes
    guest ok = no
    valid users = none
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.