क्या रिश्ते एक फ़ाइल पर एसीएल मास्क और मानक समूह की अनुमति को टाई करते हैं?


17

सबसे पहले मैं एक फ़ाइल बनाता हूँ और जाँचता हूँ कि यह मानक अनुमतियाँ और ACL प्रविष्टियाँ हैं:

$ touch file; ls -l file; getfacl file
-rw-r--r-- 1 user user 0 Jul 30 16:26 file
# file: file
# owner: user
# group: user
user::rw-
group::r--
other::r--

फिर मैंने ACL मास्क को फ़ाइल पर सेट किया और फिर से जाँच की कि यह मानक अनुमतियाँ और ACL प्रविष्टियाँ हैं:

$ setfacl -m mask:rwx file
$ ls -l file; getfacl file
-rw-rwxr--+ 1 user user 0 Jul 30 16:26 file
# file: file
# owner: user
# group: user
user::rw-
group::r--
mask::rwx
other::r--

ध्यान दें कि फ़ाइल पर ACL मास्क मानक समूह की अनुमति के साथ भी बदल गया।

  1. ACL मास्क और मानक समूह की अनुमति के बीच क्या संबंध है?
  2. ACL मास्क और फ़ाइल समूह अनुमतियों को युग्मित करने का क्या कारण है? इसके पीछे क्या तर्क है?

विचाराधीन वितरण डेबियन लिनक्स 7.6 और सेंटोस 7 हैं


संपादित करें

इस बिंदु पर मैं सिर्फ मानक फ़ाइल समूह अनुमतियों और एसीएल मुखौटा के बीच संबंधों पर शोध करते हुए मेरे साथ आए कुछ निष्कर्षों को साझा करना चाहता था। यहाँ अनुभवजन्य अवलोकन मुझे मिले:

  1. ACL मास्क बदला जा सकता है:

    1. सीधे इसे setfacl -m m:<perms>कमांड के साथ सेट करके ;
    2. chmodकमांड के साथ फ़ाइल समूह अनुमतियाँ बदलकर (यदि ACL मास्क पहले से मौजूद है; यह मौजूद नहीं हो सकता है क्योंकि यह वैकल्पिक है यदि कोई नामित उपयोगकर्ता या फ़ाइल पर समूह ACL अनुमतियाँ नहीं हैं);
    3. या तो नामित उपयोगकर्ता या समूह ACL प्रविष्टि (मुखौटा स्वचालित रूप से पुनर्गणना हो जाएगा) को जोड़कर।
  2. मुखौटा अधिकतम पहुंच अधिकार लागू करेगा (यदि एसीएल प्रविष्टियाँ मौजूद हैं, जो एसीएल मुखौटा अनुमतियों को पार करती हैं) केवल तभी जब मुखौटा सेटफैक्ल द्वारा सीधे सेट किया जाता है या फ़ाइल समूह की अनुमति को चामोद (ऑटो-गणना नहीं) के साथ संशोधित किया जाता है। ACL प्रविष्टियों में कोई भी परिवर्तन ACL मास्क स्वचालित पुनर्गणना को ट्रिगर करेगा और प्रभावी रूप से "एन्फोर्सिंग मोड" को बंद कर देगा।

  3. ACL का उपयोग करते समय मानक फ़ाइल समूह अनुमतियों को प्रभावित करने वाले कुछ दुष्प्रभाव हैं:

    1. एक फ़ाइल के लिए लागू उपयोगकर्ता या समूह ACL प्रविष्टि ACL मास्क को बदल सकती है (इसे अनुमतियाँ बढ़ाएं) और इसलिए प्रभावी फ़ाइल समूह अनुमतियाँ। उदाहरण के लिए, यदि आप एक फ़ाइल के मालिक के रूप में हैं, तो "rw-r - r-- jim students" अनुमतियाँ इस पर सेट हैं और आप उपयोगकर्ता को "जैक" के लिए rw अनुमति भी देते हैं, तो आप किसी को भी rw अनुमतियाँ प्रदान करेंगे। "छात्रों" समूह से।
    2. Stricter (कम अनुमतियाँ) ACL मास्क स्थायी रूप से संबंधित मानक फ़ाइल समूह अनुमतियों को हटा सकता है। उदाहरण के लिए, यदि आपके पास rw मानक फ़ाइल समूह अनुमतियों के साथ कोई फ़ाइल है और आप उस फ़ाइल के लिए केवल पढ़ने के लिए ACL मास्क लागू करते हैं, तो समूह अनुमतियाँ केवल पढ़ने के लिए घट जाएंगी। तब यदि आप सभी विस्तारित ACL प्रविष्टियाँ ( setfacl -bकमांड के साथ ) निकालते हैं , तो समूह अनुमतियाँ केवल पढ़ने के लिए रहेंगी। यह केवल एसीएल मास्क पर लागू होता है, नरम एसीएल मास्क (अधिक अनुमतियाँ) को हटाने के बाद मूल फ़ाइल समूह की अनुमति को स्थायी रूप से बदल नहीं सकते हैं।

मुझे लगता है कि आप संदर्भ के लिए निम्नलिखित पृष्ठ ले सकते हैं, www-uxsup.csx.cam.ac.uk/pub/doc/suse/sles9/adminguide-sles9/…
कुंडी

जवाबों:


11

इसका कोई मतलब नहीं है अगर यूनिक्स फ़ाइल की अनुमति acl प्रविष्टि और इसके विपरीत से असहमत है। तदनुसार, मैनुअल पेज ( acl(5)) कहता है कि आप क्या मांगते हैं:

भ्रष्टाचारी बेटियां एसीएल एनटीआरआई और फाइल पेमेंट्स बिट्स

ACL द्वारा परिभाषित अनुमतियाँ फ़ाइल अनुमति बिट्स द्वारा निर्दिष्ट अनुमतियों का एक सुपरसेट हैं।

फ़ाइल स्वामी, समूह, और अन्य अनुमतियों और विशिष्ट ACL प्रविष्टियों के बीच एक पत्राचार है: स्वामी अनुमतियाँ ACL_USER_OBJ प्रविष्टि की अनुमतियों के अनुरूप हैं। यदि ACL में ACL_MASK प्रविष्टि है, तो समूह अनुमतियाँ ACL_MASK प्रविष्टि की अनुमति के अनुरूप हैं। अन्यथा, यदि ACL में ACL_MASK प्रविष्टि नहीं है, तो समूह अनुमतियाँ ACL_GROUP_OBJ प्रविष्टि की अनुमति के अनुरूप हैं। अन्य अनुमतियाँ ACL_OTHER_OBJ प्रविष्टि की अनुमतियों के अनुरूप हैं।

फ़ाइल स्वामी, समूह और अन्य अनुमतियां हमेशा संबंधित ACL प्रविष्टि की अनुमतियों से मेल खाती हैं। फ़ाइल अनुमति बिट्स के संशोधन से संबंधित ACL प्रविष्टियों का संशोधन होता है, और इन ACL प्रविष्टियों के संशोधन के परिणामस्वरूप फ़ाइल अनुमति बिट्स का संशोधन होता है।

चर्चा के जवाब में परिशिष्ट:

ACL मास्क और फ़ाइल समूह अनुमतियों को युग्मित करने का क्या कारण है? इसके पीछे क्या तर्क है?

एक अच्छी व्याख्या यहाँ है । संक्षेप में मुखौटा एक है

[...] ऊपरी अनुमतियाँ जो समूह वर्ग में किसी भी प्रविष्टि को अनुदान देंगी।

यह ऊपरी बाध्य संपत्ति यह सुनिश्चित करती है कि POSIX.1 जो ACL से अनभिज्ञ हैं वे अचानक और अप्रत्याशित रूप से ACL का समर्थन करने के बाद अतिरिक्त अनुमतियाँ देना शुरू नहीं करेंगे।

न्यूनतम ACLs में, समूह वर्ग अनुमतियाँ, स्वयं समूह अनुमतियों के समान होती हैं। विस्तारित ACL में, समूह वर्ग में अतिरिक्त उपयोगकर्ता या समूह के लिए प्रविष्टियाँ हो सकती हैं। इससे समस्या उत्पन्न होती है: इनमें से कुछ अतिरिक्त प्रविष्टियों में वे अनुमतियाँ हो सकती हैं जो स्वयं के समूह प्रविष्टि में सम्‍मिलित नहीं हैं, इसलिए समूह समूह की अनुमतियों के स्वामी समूह प्रविष्टि अनुमतियाँ भिन्न हो सकती हैं।

इस समस्या को मुखौटा प्रविष्टि के गुण द्वारा हल किया जाता है। न्यूनतम ACL के साथ, समूह वर्ग अनुमतियाँ मानचित्र के पास समूह प्रविष्टि अनुमतियाँ हैं। विस्तारित ACLs के साथ, समूह वर्ग अनुमतियाँ नक़ाब प्रविष्टि अनुमतियों के लिए मैप करती हैं, जबकि स्वयं समूह प्रविष्टि अभी भी समूह की अनुमतियों को निर्धारित करती है। समूह वर्ग अनुमतियों की मैपिंग अब स्थिर नहीं है।


आप जो कह रहे हैं वह निम्न गेटफैकल आउटपुट पर लागू होता है: उपयोगकर्ता :: rw- समूह :: r-- अन्य :: r-- । यदि आप chmodमानक अनुमतियों को बदलने के लिए कमांड का उपयोग करते हैं और इसके विपरीत, जब आप निष्पादित करते हैं, तो वे 3 पंक्तियाँ बदल जाती हैं, कहते हैं getfacl -m u:someuser:rwx, फ़ाइल स्वामी के लिए मानक फ़ाइल अनुमति बदल जाएगी और परिवर्तन ls -lआउटपुट में दिखाई देगा । यह सब सच है, लेकिन मैं यह नहीं देखता कि यह मेरे सवाल का जवाब कैसे देता है
Golem

पूरी कहानी के लिए मेरा संपादन देखें
काउंटर

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

1
समझदारी हो सकती है। यह परिभाषा और कार्यान्वयन पर निर्भर करता है। परिभाषा के अनुसार, लिनक्स फ़ाइल ACL, जैसा कि अभी लागू है, मानक फ़ाइल अनुमतियों का एक सुपरसेट है, जो उन्हें शामिल करता है। इसलिए वे "विरोधाभास" नहीं कर सकते। यहाँ एक उपयोग मामला है। यदि मैं प्रारंभिक -rw-r--r-- 1 user userअनुमतियों के साथ फ़ाइल के लिए "परीक्षार्थी" को rwx अनुमतियां प्रदान करता हूं , तो नामांकित उपयोगकर्ता ACL स्वीकार किया जाएगा, और ACL मास्क (फ़ाइल समूह अनुमतियों के साथ) को भी rwx में बदल दिया जाएगा। --- (अगली टिप्पणी को एक निरंतरता के रूप में देखें]
गोलेम

1
अब "परीक्षार्थी" की अनुमतियाँ rwx फाइल की नई -rw-rwxr-- 1 user userअनुमतियों के विपरीत है या नहीं? आप विरोधाभास का निर्धारण कैसे करते हैं? परीक्षक के एसीएल अनुमतियों की तुलना मानक फ़ाइल समूह की अनुमति से? किस तर्क ने आपको उपयोगकर्ता अनुमतियों के लिए समूह अनुमतियों की तुलना करने के लिए प्रेरित किया? क्या वे अलग-अलग संस्थाएँ नहीं हैं? क्या यह प्रतिवाद नहीं है? यह शायद आपके लिए स्पष्ट है, लेकिन मैं अभी भी इसे समझ पाने के लिए संघर्ष कर रहा हूं।
गोलेम

3

मैं अंत में समझ गया कि वास्तव में क्या हो रहा है जब मैंने इस लिंक को संभालने वाले ACL को देखा

विशेष रूप से, वह मास्क मूल रूप से NAMED USER और सभी ग्रुप अनुमतियों को बदलने के लिए कार्य करता है। इसका मतलब है अगर आप:

  1. मुखौटा समायोजित करें, आप समूह अधिकतम अनुमतियों को बदलते हैं,
  2. यदि आप किसी समूह की अनुमतियों को मास्क के साथ बदलते हैं, तो मास्क सभी समूह की अनुमतियों की अधिकतम समूह अनुमतियाँ लेता है
  3. ग्रुप रीड, राइट और एक्जीक्यूट करने की अनुमति मास्क के आधार पर निर्धारित की जाती है, यदि मौजूद हो

यहाँ छवि विवरण दर्ज करें

उम्मीद है कि यह मदद करता है।


आपके द्वारा संदर्भित पृष्ठ पर मुखौटा का एक बहुत अच्छा विवरण है (खंड 27.3.3 से उद्धरण । एक्सेस एसीएल के साथ एक निर्देशिका ): मुखौटा समूह वर्ग में सभी प्रविष्टियों के लिए अधिकतम प्रभावी एक्सेस अनुमतियों को परिभाषित करता है। इसमें नामांकित उपयोगकर्ता, नाम समूह और स्वामित्व समूह शामिल हैं।
patryk.beza

-1

इसके पीछे क्या तर्क है?

तर्क पूरी तरह से टूट गया है और इस तरह POSIX ACL शुद्ध और बेकार बकवास है।

यदि वे ऐसे ऐप्स के साथ अनुकूलता बनाए रखने का लक्ष्य रखते थे, जिनमें मानक आदिम UNIX "" नक्सो मॉडल को छोड़कर ACL की कोई धारणा नहीं है , तो वे वास्तव में शुरुआत में विफल रहे क्योंकि अब समूह की अनुमतियों को साफ़ करने वाला प्रत्येक ऐप ACL में जोड़ा गया एक्सेस प्रभावी रूप से वापस ले रहा है।

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