सांबा - अपनी स्वयं की अनुमति के साथ उपनिर्देशिका शेयर बनाएँ


9

मेरे पास एक सांबा हिस्सा है जिसमें इस तरह के कई फ़ोल्डर हैं:

share
  - folderA
  - folderB
  - folderC
  - folderD

उन शेयरों तक पहुंचने वाले लगभग 20 उपयोगकर्ता हैं। प्रत्येक उपयोगकर्ता कुछ निर्देशिकाओं के लिए अपनी व्यक्तिगत पहुंच रख सकता है, उदाहरण के लिए बेन फ़ोल्डरए और फ़ोल्डरसी तक पहुंच सकता है, लेकिन फ़ोल्डरबी और फ़ोल्डरडी नहीं। जेनी folderB और folderC और इतने पर उपयोग कर सकते हैं।

मैं नहीं चाहता कि उपयोगकर्ता प्रत्येक फ़ोल्डर को माउंट करें जिसकी उन्हें आवश्यकता है। मैं उन्हें "शेयर" फ़ोल्डर को माउंट करना चाहता हूं जिसमें सभी सबफ़ोल्डर्स शामिल हैं। एक्सेस तब लिनेक्स परमिशन सेट करके सीमित होता है।

मैंने प्रत्येक उपनिर्देशिका के लिए एक समूह बनाया और उन समूहों में उपयोगकर्ताओं को जोड़ा। एक्सेस कंट्रोल मौजूदा फ़ाइलों के लिए पूरी तरह से काम करता है। लेकिन जब भी कोई उपयोगकर्ता किसी उपनिर्देशिका में एक फ़ाइल बनाता है, तो उसे उस निर्देशिका में पढ़ने / लिखने की अनुमति देने वाले हर दूसरे उपयोगकर्ता के लिए मना कर दिया जाता है। इसे हल करने के लिए, मैंने सांबा मास्किंग के साथ चारों ओर खेला, लेकिन इसे काम करने के लिए नहीं मिल सकता है।

मेरा सांबा का आत्मविश्वास इस तरह दिखता है:

guest ok = no

[global]
workgroup = WORKGROUP
security  = user
encrypt passwords = yes

[Share]
path        = /var/samba
valid users = @everybody
read only   = no
writeable   = yes

[folderA]
path        = /var/samba/folderA
valid users = @users_folderA
read only   = no
writeable   = yes

create mask          = 770
directory mask       = 770
force directory mode = 770

force group = users_folderA

[folderB]
path        = /var/samba/folderB
valid users = @users_folderB
read only   = no
writeable   = yes

create mask          = 770
directory mask       = 770
force directory mode = 770

force group = users_folderB

[folderC]
path        = /var/samba/folderC
valid users = @users_folderC
read only   = no
writeable   = yes

create mask          = 770
directory mask       = 770
force directory mode = 770

force group = users_folderC

[folderD]
path        = /var/samba/folderD
valid users = @users_folderD
read only   = no
writeable   = yes

create mask          = 770
directory mask       = 770
force directory mode = 770

force group = users_folderD

तो जाहिर है कि प्रत्येक उपयोगकर्ता समूह में हर कोई है, इसलिए वे उपनिर्देशिका के साथ शेयर को माउंट कर सकते हैं। प्रत्येक उपनिर्देशिका की पहुंच पूरी तरह से ठीक है। लेकिन जब भी बेन फ़ोल्डरसी में एक फाइल बनाता है, तो फाइल को फाइल परमिशन मिलती है -rwxr - r-- लेकिन यह -rwxrwx --- होनी चाहिए।

मुझे लगता है कि व्यक्तिगत फ़ोल्डरों के लिए शेयर बिल्कुल भी काम नहीं करते हैं क्योंकि मैंने इसे लिखने के लिए लिखने योग्य = नहीं और केवल पढ़ने के लिए = हां पढ़ने की कोशिश की। पुनः आरंभ किया गया smbd और nmbd और नेटवर्क शेयर (विंडोज 10 में) को रिमूव किया गया। उपयोगकर्ता फ़ाइलें बनाने और अपने स्वयं को संशोधित करने में सक्षम थे।

यह रास्पबेरी के साथ रास्पबेरी पाई पर चलता है। फ़ाइलों के साथ हार्ड ड्राइव को ext4 के रूप में स्वरूपित किया जाता है और fstab के माध्यम से माउंट किया जाता है।


फ़ाइलों के लिए वांछित पहुँच अधिकारों को बाध्य करने के लिए अपने कॉन्फ़िगरेशन force create mode = 770के folderCअनुभाग में कथन का उपयोग करें।
ओलेग बोल्डेन

धन्यवाद, यह वास्तव में समस्या को हल नहीं किया था, लेकिन मैंने देखा कि मैं अपने असली smb.conf के रास्तों में रिक्त स्थान था: [folderA] पथ = / var / samba / रिक्त स्थान के साथ कुछ फ़ोल्डर। मैंने इसे "(/ / var / samba / कुछ फ़ोल्डर के साथ रिक्त स्थान") के साथ पथ को संलग्न करके हल किया है। [folderA] पैराग्राफ में सेटिंग्स का उपयोग केवल तब होता है जब उपयोगकर्ता [folderA] को सीधे mounts करता है, लेकिन सेटिंग्स नहीं हैं उपयोग किया जाता है जब उपयोगकर्ता फोल्डर में [शेयर] और नेविगेट करता है। [शेयर] की सेटिंग फोल्डर के लिए उपयोग की जाती है। मैं फ़ोल्डर के लिए [शेयर] सेटिंग्स को बिना बढ़ते फोल्डर के सीधे कैसे बायपास कर सकता हूं लेकिन इसे [शेयर] से एक्सेस कर रहा हूं?
सोनर

जवाबों:


5

इस कॉन्‍फ़िगर को आज़माएं (शेयर अनुभागों के लिए):

[Share]
path        = /var/samba
valid users = @everybody
force group = +everybody
writeable   = yes
create mask = 0660
force create mode = 0110
directory mask = 0770

[folderA]
path        = /var/samba/folderA
valid users = @users_folderA
force group = +users_folderA
browseable = no

[folderB]
path        = /var/samba/folderB
valid users = @users_folderB
force group = +users_folderB
browseable = no

[folderC]
path        = /var/samba/folderC
valid users = @users_folderC
force group = +users_folderC
browseable = no

[folderD]
path        = /var/samba/folderD
valid users = @users_folderD
force group = +users_folderD
browseable = no

कॉन्फ़िगर की जाँच करने के लिए मत भूलना और सांबा को पुनरारंभ करें:

# testparm
# service smbd restart
# service nmbd restart

अनुमतियाँ सेट करें:

chown root:everybody /var/samba
chmod 770 /var/samba
chown root:users_folderA /var/samba/folderA
chmod 2770 /var/samba/folderA
chown root:users_folderB /var/samba/folderB
chmod 2770 /var/samba/folderB
chown root:users_folderC /var/samba/folderC
chmod 2770 /var/samba/folderC
chown root:users_folderD /var/samba/folderD
chmod 2770 /var/samba/folderD

इस तरह से आंतरिक फ़ोल्डर्स तक सीधी पहुंच की अनुमति नहीं है। इसके अलावा, वे बिल्कुल दिखाई नहीं देते हैं और केवल मूल फ़ोल्डर के माध्यम से पहुँचा जा सकता है।


धन्यवाद, यह काम किया। अब हमारे पास एक और मुद्दा है कि एक्सेल 2016 13 केबी से ज्यादा की सांबा की फाइलों को सहेजने में सक्षम नहीं है। लेकिन यह एक और विषय है। मदद करने के लिए बहुत बहुत धन्यवाद!
सोनार
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.