777 अनुमतियों के बिना विंडोज से लेखन योग्य सांबा शेयर कैसे बनाएं?


33

मेरे पास एक लिनक्स मशीन (डेबियन 8) पर एक पथ है जिसे मैं सांबा 4 के साथ विंडोज कंप्यूटर (एक डोमेन में Win7 और 8) के साथ साझा करना चाहता हूं। अपने में smb.confमैंने निम्नलिखित किया:

[myshare]
path = /path/to/share
writeable = yes
browseable = yes
guest ok = yes
public = yes

मेरे पास विंडोज से सही रीड एक्सेस है। लेकिन लिखने का उपयोग करने के लिए, मुझे chmod -R 777 /path/to/shareविंडोज से इसे लिखने में सक्षम होने के लिए करने की आवश्यकता है।

मैं जो चाहता हूं वह विंडोज से एक्सेस लिखना है, जब मैं लिनक्स के मालिक के लिनक्स क्रेडेंशियल्स प्रदान करता हूं /path/to/share

मैंने पहले ही कोशिश की:

[myshare]
path = /path/to/share
writeable = yes
browseable = yes

फिर विंडोज क्रेडेंशियल के लिए पूछता है, लेकिन कोई फर्क नहीं पड़ता कि मैं क्या दर्ज करता हूं, यह हमेशा इनकार किया जाता है।

777 का अनुदान दिए बिना विंडोज डोमेन कंप्यूटर से सांबा के शेयरों तक पहुंच प्राप्त करने का सही तरीका क्या है?

जवाबों:


49

मैं उस हिस्से के लिए एक समर्पित उपयोगकर्ता बनाने और इसे force user(डॉक्स देखें) में निर्दिष्ट करने की सलाह देता हूं ।

एक उपयोगकर्ता बनाएं ( shareuserउदाहरण के लिए) और शेयर फ़ोल्डर में उस उपयोगकर्ता के लिए सब कुछ सेट करें:

adduser --system shareuser
chown -R shareuser /path/to/share

फिर इसमें force userमास्क की सेटिंग जोड़ें और अनुमति दें smb.conf:

[myshare]
path = /path/to/share
writeable = yes
browseable = yes
public = yes
create mask = 0644
directory mask = 0755
force user = shareuser

ध्यान दें कि guest okएक पर्यायवाची है public


1
मुझे एक समान समस्या थी और सभी Google खोजों ने केवल 777 का उपयोग करने का गंदा तरीका दिखाया। मैं अपने साझा फ़ोल्डर के लिए 775 चाहता था और मैं चाहता था कि मेरे लिनक्स "डिफॉल्टयूजर" का उपयोग करके फाइलें बनाई जाएं, मैंने भी सार्वजनिक = हां का उपयोग किया। फ़ोल्डर 775 था, क्रिएट और डीआईआर मास्क 775 था लेकिन विंडोज में यह लिखने योग्य नहीं था और मुझे ऐसा क्यों नहीं मिला। जोड़ने force user = defaultUserने मेरे लिए काम किया।
फायरपोल

मुझे यह काम करने के लिए नहीं मिल सकता है, किसी भी समय मैं निर्देशिका को साझा करने का प्रयास करता हूं, मुझे बस यह बताने के लिए एक खिड़की मिलती है कि मुझे निर्देशिका साझा करने के लिए "दूसरों" को लिखित अनुमति देने की आवश्यकता है।
मार्क क्रेमर

मुझे मिल गया, समस्या का स्थान था smb.conf। Google और यहां तक ​​कि सांबास के दस्तावेज में कहा गया है कि फाइल में होना चाहिए /usr/local/samba/libलेकिन वास्तव में यह है/etc/samba
मार्क क्रेमर

1
@MarkKramer अपने विशिष्ट लिनक्स वितरण में शामिल दस्तावेज़ों का पालन करना एक अच्छा विचार है क्योंकि कई डिस्ट्रोस लिनक्स फाउंडेशन के FHS (फाइलसिस्टम पदानुक्रम मानक) को फिट करने के लिए फाइलों को फिर से व्यवस्थित करते हैं। मैं आपके डिस्ट्रो के साथ दिए गए डॉक्स को पढ़ने और खोजने की सलाह देता हूं क्योंकि Google हमेशा सबसे अच्छा उत्तर नहीं है, उदाहरण के लिए आप सॉफ़्टवेयर के एक अलग संस्करण के लिए जानकारी प्राप्त कर सकते हैं। सादर।
राबर्ट १

2

में शेयर सेटिंग्स में smb.conf, आपको एक write list = ...लाइन का उपयोग करके उन उपयोगकर्ताओं और / या समूहों के नाम निर्दिष्ट करने होंगे, जिन्हें शेयर लिखने की अनुमति है ।

उदाहरण:

[myshare]
...
write list = my_linux_username

फिर आपको सांबा smbpasswdको प्रमाणित करने के my_linux_usernameलिए पासवर्ड सेट करने के लिए कमांड का उपयोग करना होगा :

sudo smbpasswd -a my_linux_username

यह कदम आवश्यक है क्योंकि मानक सिस्टम पासवर्ड /etc/shadowएल्गोरिदम में हैश किए गए हैं जो SMB प्रोटोकॉल में उपयोग किए गए पासवर्ड हैश एल्गोरिदम के साथ असंगत हैं। जब कोई क्लाइंट SMB प्रमाणीकरण पैकेट भेजता है, तो उसमें एक हैशेड पासवर्ड शामिल होता है। इसकी तुलना किसी अन्य पासवर्ड हैश से की जा सकती है जो समान एल्गोरिथ्म का उपयोग करता है।

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


ग्राहक-पक्ष में एक और बात हो सकती है। जब आपका विंडोज क्लाइंट सिस्टम एक सक्रिय निर्देशिका डोमेन में शामिल हो जाता है और आप AD खाते के साथ लॉग इन हो जाते हैं, तो यह स्वचालित रूप से उपयोगकर्ता के AD डोमेन के नाम के साथ सभी अयोग्य उपयोगकर्ता नाम उपसर्ग कर देता है, अर्थात आप AD_DOMAIN\your_usernameकेवल इस रूप में प्रमाणित करेंगे your_username

यदि आप एक स्थानीय खाते (या आपका क्लाइंट सिस्टम AD डोमेन में शामिल नहीं है) के साथ लॉग इन हैं, तो Windows तब तक क्लाइंट होस्टनाम के साथ उपयोगकर्ता नाम के साथ स्वचालित रूप से उपसर्ग कर सकता है जब तक कि आप किसी अन्य डोमेन नाम को निर्दिष्ट नहीं करते।

स्टैंड-अलोन विंडोज क्लाइंट से स्टैंड-अल-सांबा सर्वर में सफलतापूर्वक लॉग-इन करने के लिए, आपको अपना उपयोगकर्ता नाम निर्दिष्ट करना पड़ सकता है SAMBA_SERVER_HOSTNAME\your_username

अन्यथा सांबा उपयोगकर्ता नाम को देखेगा WINDOWS_CLIENT_HOSTNAME\your_username, यह निष्कर्ष निकालेगा कि उसके पास डोमेन नाम से संबंधित किसी भी उपयोगकर्ता को सत्यापित करने का कोई तरीका नहीं है WINDOWS_CLIENT_HOSTNAME, और लॉगिन को अस्वीकार कर देगा।

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


1

मैं इसकी तलाश कर रहा था क्योंकि मैं जल्दी में था और उपयोगकर्ताओं को बनाने पर ध्यान केंद्रित करने का समय भी नहीं था और इसलिए ...

बस जल्द से जल्द एक डेबियन 9 मशीन का डेटा निकालना था और यह सबसे तेज़ तरीका था जिससे मैंने सोचा था, अगर आप स्किपिंग कमांड से बचना चाहते हैं तो आप भी ऐसा कर सकते हैं लेकिन यह स्पष्ट रूप से अनुशंसित नहीं है जब तक कि आप एक में न हों जल्दी करो

[mymfolder]
path = /mymfolder
writeable = yes
browseable = yes
public = yes
create mask = 0777
directory mask = 0777
force user = root 

और यदि आप इस मार्ग पर जाते हैं, तो आप "होस्ट अनुमति" विकल्प का उपयोग करके मेजबान द्वारा प्रतिबंधित कर सकते हैं। देखें: samba.org/samba/docs/server_security.html
ctorx
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.