मैं एक फ़ोल्डर कैसे सेट करूं ताकि इसमें बनाई गई कुछ भी अनुमतियाँ विरासत में मिलीं?


18

मेरे पास सभी डेटा के लिए एक / डेटा फ़ोल्डर (वास्तव में एक विभाजन) है जो सभी उपयोगकर्ताओं (इस मामले में परिवार के सदस्यों) द्वारा सुलभ होना चाहिए। हम सभी के पास अलग-अलग उपयोगकर्ता खाते हैं और प्रायः सभी इस एक पीसी पर किसी भी समय लॉग इन होते हैं।

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


आगंतुकों के लिए। अगर आप चाहते हैं कि समूह का नाम विरासत में मिले chmod -R g+s /parentdir। नोट: chmod -R जरूरत पड़ने पर इससे पहले चलाएं
थम्मे गौड़ा

1
उपरोक्त पर ध्यान दें: -Rझंडा chmodबहुत कम उपयोगी है क्योंकि हम शायद ही कभी निर्देशिकाएं चाहते हैं (जो हमेशा कुछ निष्पादन की अनुमति की आवश्यकता होती है) और नियमित फ़ाइलों (जो शायद ही किसी भी निष्पादन की अनुमति की आवश्यकता होती है) के लिए समान अनुमतियाँ हैं
Zanna

जवाबों:


17

एक अन्य दृष्टिकोण एक्सेस कंट्रोल लिस्ट, फ़ाइल अनुमतियों के एक सुपरसेट का उपयोग करना है।

सबसे पहले, हमें acl एसीएल स्थापित करें पैकेज स्थापित करना होगा :

sudo apt-get install acl

Ubuntu 14.04 से पहले , विभाजन को aclनिम्न कार्य के लिए विकल्प के साथ माउंट किया जाना है । इसमें जोड़ा जा सकता /etc/fstabहै

UUID=<XXXX>  /media/shared  ext4  noatime,acl  0  2

या पहले से ही माउंट किए गए फाइल सिस्टम के लिए

sudo mount -o remount,acl /media/shared

इसके बाद, आपको एक नया समूह बनाना चाहिए, जिसमें सभी उपयोगकर्ताओं को रीड / राइट मोड में शेयर तक पहुंचने की अनुमति दी जाएगी। मैं इसे बुलाता हूं usershare। पहले से मौजूद समूह का उपयोग किया जा सकता है।

sudo addgroup usershare

अब हम उपयोगकर्ताओं enzotibऔर steevcउस समूह में जोड़ते हैं :

sudo gpasswd -a steevc  usershare
sudo gpasswd -a enzotib usershare

(अगले लॉगिन पर प्रभावी)।

फिर हम rwxसमूह usershareमें पहले से मौजूद सभी फ़ाइलों के लिए अनुमति के साथ एक ACL जोड़ते हैं/media/shared

sudo setfacl -Rm g:usershare:rwX /media/shared

अंत में हम rwxसमूह के usershareलिए अनुमति के साथ एक डिफ़ॉल्ट ACL जोड़ते हैं जो अब अंदर से बनाई गई सभी फाइलों के लिए है/media/shared

sudo setfacl -d -Rm g:usershare:rwX /media/shared

अब usershareसमूह के सभी उपयोगकर्ताओं के पास सभी फाइलों पर पूर्ण अनुमति है /media/shared। उसके और दूसरे के घर निर्देशिकाओं पर प्रत्येक उपयोगकर्ता की अनुमतियाँ प्रभावित नहीं होती हैं।

मैंने इस समाधान का परीक्षण किया और काम करने लगता है, लेकिन सुझावों और सुधारों का स्वागत है।

टिप्पणी : नई फ़ाइलों और निर्देशिका में बनाई गई निर्देशिकाओं में usershareसमूह के लिए लिखित अनुमति होगी , लेकिन फ़ोल्डर में प्रतिलिपि बनाई गई या स्थानांतरित की गई फाइलें अपनी मूल अनुमतियों को बनाए रखेंगी। यदि उपयोगकर्ता, जैसा कि मैं समझता हूं, केवल नई बनाई गई निर्देशिकाओं के लिए लिखने की आवश्यकता है, तो यह कोई समस्या नहीं है। अन्यथा इसे हाथ से अनुमतियों को संशोधित करना चाहिए। उपयोगकर्ताओं के umask को परिभाषित करके इसे कैसे दूर किया जाए, इस उत्तर को देखें 002


मुझे बहुत अच्छी तरह से पता नहीं है, क्या आप rw-r - r-- जैसी अनुमतियों वाली फ़ाइल को अपने होम फोल्डर से साझा फ़ोल्डर में परीक्षण और कॉपी कर सकते हैं और देख सकते हैं कि usershareक्या समूह के लिए अनुमतियाँ आपके डिफ़ॉल्ट rwx में बदल जाती हैं ?
व्यवस्था करें

@ व्यवस्था: नहीं, यह इरादा के अनुसार काम नहीं करता है। जवाब में इशारा करने के लिए जा रहे हैं। धन्यवाद
enzotib

मैं यह जोड़ूंगा कि /etc/fstab/ remountचरण की आवश्यकता नहीं है, क्योंकि डिफ़ॉल्ट रूप से सक्रिय विकल्प के ext4साथ माउंट किया जाना चाहिए acl
enzotib

8
  1. फोल्डर बना लें।

    उदाहरण के लिए:

    mkdir /mnt/family
    

    यदि आप उन्हें माउंट विभाजन की जरूरत है ... अगर ext4 आप सभी की जरूरत /etc/fstabहै

    UUID=xxx    /mnt/family ext4    **rw,exec,defaults,auto,async   0   2**
    
  2. समूह myfam बनाएँ।

    addgroup myfam
    
  3. उस समूह में कुछ उपयोगकर्ता जोड़ें

    adduser papa myfam  
    adduser mom myfam
    
  4. अब अनुमति लें और दें।

    मुझे लगता है कि आपको शुरू करना चाहिए, बदलने से umask

    12.04 में डिफ़ॉल्ट फाइल सिस्टम अनुमतियाँ और अभिगम अधिकार

    chown -R you.myfam /mnt/family  
    chmod -R g+rwx /mnt/family  
    

    अब सबसे महत्वपूर्ण है। उस पंक्ति को setgidकुछ भी बनाएं जो आप उस फ़ोल्डर के अंतर्गत बनाते हैं, आपके उपयोगकर्ता स्वामी और समूह के रूप में हैं myfam। उपयोगकर्ता प्राथमिक समूह को सिस्टम को ओवरराइड करने दें।

    chmod -R g+s /mnt/family   
    

3

सबसे सरल बात जो दिमाग में आती है वह है प्रत्येक उपयोगकर्ता को अन्य सभी उपयोगकर्ताओं के समूह में जोड़ना।

फिर 022 से 002 तक प्रत्येक उपयोगकर्ता के umask को बदलें, इसमें किया जा सकता है /etc/profile

संपादित करें

पहले चरण को निम्न के साथ बदला जा सकता है: सभी उपयोगकर्ताओं को usersसमूह के प्राथमिक समूह के रूप में बनाएँ।

Edi2

जैसा कि @James_Henstridge ने सुझाव दिया, यह मुख्य निर्देशिका पर सेटगिट बिट सेट करने के लिए सुविधाजनक हो सकता है, जिससे कि नई फ़ाइलों और निर्देशिकाओं का एक ही समूह होगा, उपयोगकर्ता का अनिश्चित काल तक। इस तरह आप usersउपयोगकर्ताओं के लिए प्राथमिक समूह के रूप में सेट से बच सकते हैं ।


आप अपने जवाब को संपादित करने के लिए सभी निर्देशिकाओं पर सेटगिट बिट सेट करने का सुझाव भी दे सकते हैं /dataताकि नई फाइलें समूह के स्वामित्व में आ जाएं।
जेम्स हेनस्ट्रिज

edit3 :) यदि आप किसी फ़ाइल को /dataफ़ोल्डर में कॉपी करते हैं , तो अनुमतियाँ इनहेरिट नहीं की जाती हैं, इसलिए gw अनुमतियों वाली पुरानी फ़ाइलें दूसरों द्वारा संशोधित नहीं की जाएंगी। edit4: usersअपने प्राथमिक समूह और umask0002 के रूप में स्थापित करना निश्चित रूप से एक अच्छा विचार नहीं है क्योंकि उस समूह का कोई भी व्यक्ति आपकी बनाई हुई किसी भी फाइल को संशोधित करने में सक्षम होगा।
व्यवस्था करें

@ व्यवस्था: आपके edit4 के बारे में, मैंने सुझाव दिया कि usersसमूह में केवल उन उपयोगकर्ताओं को ही हिस्सा लेने की अनुमति दी जाए, जिनके पास rw की पहुँच है। यह सुविधा की बात थी, यह उसके लिए एक और समूह भी बना सकता था। आपके edit3 के बारे में, यह सही नहीं है, कॉपी की गई फ़ाइल फ़ोल्डर समूह का अधिग्रहण करती है।
enzotib

@enzotib: दूसरे शब्दों में मेरी बात को फिर से दोहराने के लिए: edit4 - अगर usersमेरा प्राथमिक समूह है और इस समूह में अधिक उपयोगकर्ता हैं, तो वे साझा निर्देशिका के बाहर भी मेरी फ़ाइलों को संशोधित करने में सक्षम हैं; edit3 - मैंने अनुमतियाँ लिखी हैं , फ़ोल्डर समूह नहीं।
व्यवस्था करें

@ व्यवस्था: आपकी बात सही है, मैंने सिर्फ एक उत्तर दिया है, आपकी राय सुनने में दिलचस्प हो सकता है।
एनज़ोटिब

2

यह एसीएल के लिए एक नौकरी की तरह लगता है। जीईएस का एसई यूनिक्स और लिनक्स साइट पर बहुत गहन उत्तर है जिसने मुझे एक ही समस्या को हल करने में मदद की।


1
वह काम किया! मैंने एसीएल का उपयोग करते हुए अन्य उत्तर देखे हैं, लेकिन यह एकमात्र ऐसा मैंने देखा है जो न केवल नई फ़ाइलों और साझा निर्देशिकाओं में बनाई गई निर्देशिकाओं की अनुमतियों को बदलता है, बल्कि उन लोगों की भी है जो इसे कॉपी या स्थानांतरित करते हैं।
ダ ボ ー

0

मुझे समझ नहीं आ रहा है, क्या सभी linux-linux, linux-windows, linux - ???, Samba का उपयोग कर रहे हैं ?, SSH ;, कबूतर ?; वैसे भी आपको अपने उपयोगकर्ता नाम (अपने समूह) के साथ समूह में दूसरों को शामिल करने की आवश्यकता है, और उन्हें आपके जैसी ही अनुमति मिल जाएगी।


यह एक पीसी पर कई उपयोगकर्ता हैं। मुझे यकीन है कि कुछ उपयोगी के लिए डिफ़ॉल्ट को अनुमतियाँ प्राप्त करने का एक तरीका होना चाहिए।
स्टेबेल्यूड जूल 10'11

0

मुझे अपनी ग्रुप PERMISSION समस्या के लिए उत्तर खोजते समय यह प्रश्न आया। मैंने प्रश्न पढ़ा है और ऐसा लगता है कि मैं पहले से ही लागू कर रहा हूं कि प्रश्न क्या पूरा करने की कोशिश करता है।

इसलिए मैंने इसका जवाब देने की जहमत उठाई।

मेरे लान पर सभी उपयोगकर्ताओं के लिए मेरे पास पहले से ही एक सेट अप है, केवल पढ़ने और निष्पादित करने के लिए, और केवल मेरे खाते में साझा किए गए फ़ोल्डरों पर लिखने की अनुमति है।

मेरे पास मेरे लैन पर एक बहुउद्देश्यीय सर्वर है जो ubuntu 12.04 LTS डेस्कटॉप संस्करण का उपयोग करता है। मेरे पास linux और windows की मिक्स क्लाइंट मशीन है।

मैं इसे कैसे स्थापित किया है:

1. मेरे सर्वर पर, मेरे पास नाम वाले उपयोगकर्ता खाते हैं adminऔरclientone

adminखाता बनाते समय मैं ubuntu स्थापित खाता है और clientoneखाता उपयोगकर्ता का उपयोग कर बनाई खाता है ubuntu में मेनू खातों। इसके पास केवल एक मानक अनुमति है, कोई भी व्यवस्थापक नहीं है और इसे usersसमूह में जोड़ा जाता है । आप केवल टर्मिनल का उपयोग करके ऐसा कर सकते हैं। अपने क्लाइंट मशीनों के लिए अधिक अतिरिक्त उपयोगकर्ता खाते जोड़ें।

2. साझा विभाजन / फ़ोल्डर को केवल डिफ़ॉल्ट विकल्प का उपयोग करके fstab में स्वचालित किया जाता है।

3. मेरा नेटवर्क एक कार्यसमूह के वातावरण में है, और यह mylanकार्यसमूह पर है।

मेरे लैन की सभी मशीनें mylanकार्यसमूह का उपयोग करने के लिए निर्धारित हैं ।

4.My शेयर्ड फोल्डर के नाम इसमें sharedपहले से ही फाइल्स हैं। इसलिए मैं नीचे दिए गए कमांड का उपयोग करके इसके लिए स्वामी और समूह को बदल देता हूं।

 sudo chown -Rv admin:users /shared

5. मैं भी फ़ोल्डर और फ़ाइल /sharedका उपयोग करने की अनुमति फ़ोल्डर पुनरावर्ती आदेश का उपयोग कर

 sudo chmod -Rv 750 /shared

मेरे mylanकार्यसमूह की अतिथि मशीनों में chmod 750 का उपयोग करके शेयर तक पहुंच नहीं है

तुम उपयोग कर सकते हो

 sudo chmod -Rv 755 /shared

usersसमूह के भीतर सभी भविष्य के उपयोगकर्ता खातों ने केवल निष्पादन की अनुमति को पढ़ा है।

6. मेरी ग्राहक मशीन एक (विंडोज़ xp) में मैं नाम के एक उपयोगकर्ता खाते की स्थापना करता हूं clientone। मेरे ubuntu सर्वर में बनाए गए एक ही उपयोगकर्ता नाम और पासवर्ड। नाम clienttwoका एक दूसरा खाता भी ubuntu सर्वर में बनाया गया है और यह उसी उपयोगकर्ता खाते का उपयोग मेरी दूसरी मशीन (linuxmint 15) में किया गया है।

7. clientoneखाते का उपयोग करने में मेरी क्लाइंट मशीन एक पर , मैं कमांड चलाने के लिए जाता हूं, फिर प्रवेश करता हूं

 //192.168.10.254/shared

192.168.10.254मेरे ubuntu सर्वर का आईपी पता है, मेरे ubuntu सर्वर /sharedमें साझा किया गया फ़ोल्डर है। मेरे ग्राहक मशीन दो (linuxmint 15) में, मैं मेनू> नेटवर्क और स्थान पर जाता हूं: संवाद बार में मैंने टाइप किया है:

 smb://192.168.10.254/shared

यदि आपको पासवर्ड के लिए कहा गया था, तो अपने उपयोगकर्ता के पासवर्ड दर्ज करें। और अपने कीरिंग पासवर्ड को भी अगर KEYRING आपके लिनक्स मशीनों में सक्षम है।

यह मेरे लिए मेरे अपने नेटवर्क सेटअप में काम करता है। मेरा सर्वर एक बहुउद्देश्यीय सर्वर है जो स्क्वीड सर्वर, एक्सबीएमसी और मेडियाटॉम्ब सर्वर और अमाही सर्वर के रूप में कार्य करता है।

मैं अभी भी अपने सेटअप के फ़ाइल साझाकरण भाग को बेहतर बनाने के तरीके देख रहा हूं। ऊपर दिया गया निर्देश बुलेट प्रूफ समाधान नहीं है, खरीदें आप इसे आज़मा सकते हैं। मैं ऑटो बढ़ते हुए साझा किए गए फ़ोल्डरों के साथ ACL ”चीज़ का परीक्षण और परीक्षण करता हूं। जैसे-जैसे आपके फ़ोल्डर की शेयरिंग आवश्यकता जटिल होती जाती है, उपरोक्त निर्देश आपको सफलता की गारंटी नहीं देगा।

जोड़ी गई जानकारी:

मेरे सर्वर में Amahi सर्वर स्थापित है, मैंने इसका उपयोग उन उपयोगकर्ता खातों को बनाने के लिए भी किया है जिन्हें मैं साझा किए गए फ़ोल्डरों तक पहुंच बनाना चाहता था। मैंने इसका उपयोग नए फ़ोल्डर शेयर बनाने के लिए भी किया।

जब आप अलग-अलग उपयोगकर्ताओं के लिए अधिक जटिल उपयोगकर्ता अनुमति चाहते हैं, तो ACL जाने वाला है।


0

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

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