लिनक्स कमांड setfacl जानें

Setfacl उपयोगिता फ़ाइलों और निर्देशिकाओं के एक्सेस कंट्रोल सूचियों (एसीएल) सेट करता है। कमांड लाइन पर , कमांड का अनुक्रम फाइलों के अनुक्रम के बाद होता है (जो बदले में कमांड के दूसरे अनुक्रम के बाद किया जा सकता है ...)।

विकल्प -एम, और -x कमांड लाइन पर एसीएल की अपेक्षा करते हैं। एकाधिक एसीएल प्रविष्टियां अल्पविराम वर्णों (`, ') से अलग होती हैं। विकल्प -एम, और -एक्स फ़ाइल से या मानक इनपुट से एसीएल पढ़ते हैं। एसीएल प्रवेश प्रारूप खंड एसीएल प्रविष्टियों में वर्णित है।

--set और --set-file विकल्प फ़ाइल या निर्देशिका के ACL सेट करते हैं। पिछला एसीएल बदल दिया गया है। इस ऑपरेशन के लिए एसीएल प्रविष्टियों में अनुमतियां शामिल होनी चाहिए।

-m (--modify) और -M (--modify-file) विकल्प किसी फ़ाइल या निर्देशिका के ACL को संशोधित करते हैं। इस ऑपरेशन के लिए एसीएल प्रविष्टियों में अनुमतियां शामिल होनी चाहिए।

-x (--remove) और -X (--remove-file) विकल्प ACL enries को हटा दें। परमिट फ़ील्ड के बिना केवल एसीएल प्रविष्टियों को पैरामीटर के रूप में स्वीकार किया जाता है, जब तक कि POSIXLY_CORRECT परिभाषित नहीं किया जाता है।

-एम, और -X विकल्पों का उपयोग कर फ़ाइलों से पढ़ने पर, setfacl आउटपुट getfacl उत्पादन स्वीकार करता है। प्रति पंक्ति में एक एसीएल प्रविष्टि है। पाउंड साइन (`# ') के बाद, लाइन के अंत तक सब कुछ एक टिप्पणी के रूप में माना जाता है।

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

SYNOPSIS

setfacl [-bkndRLPvh] [{-m | -x} acl_spec] [{-M | -X} acl_file] फ़ाइल ...

setfacl --restore = फ़ाइल

अनुमति

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

विकल्प

-बी, --remove-सब

सभी विस्तारित एसीएल प्रविष्टियों को हटा दें। मालिक, समूह और अन्य की मूल एसीएल प्रविष्टियां बरकरार रखी जाती हैं।

-k, --remove-default

डिफ़ॉल्ट एसीएल निकालें। यदि कोई डिफ़ॉल्ट एसीएल मौजूद नहीं है, तो कोई चेतावनी जारी नहीं की जाती है।

-एन, - नो-मास्क

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

--मुखौटा

प्रभावी अधिकार मास्क का पुनर्मूल्यांकन करें, भले ही एक एसीएल मास्क प्रविष्टि स्पष्ट रूप से दी गई हो। ( -एन विकल्प देखें।)

-d, --default

सभी ऑपरेशन डिफ़ॉल्ट एसीएल पर लागू होते हैं। इनपुट सेट में नियमित एसीएल प्रविष्टियों को डिफ़ॉल्ट एसीएल प्रविष्टियों में पदोन्नत किया जाता है। इनपुट सेट में डिफ़ॉल्ट एसीएल प्रविष्टियां त्याग दी जाती हैं। (यदि ऐसा होता है तो एक चेतावनी जारी की जाती है)।

--restore = फ़ाइल

'Getfacl -R' या इसी तरह से बनाई गई अनुमति बैकअप को पुनर्स्थापित करें। इस तंत्र का उपयोग कर एक पूर्ण निर्देशिका उपट्री की सभी अनुमतियां बहाल की जाती हैं। अगर इनपुट में मालिक टिप्पणियां या समूह टिप्पणियां होती हैं, और setfacl रूट द्वारा चलाया जाता है, तो सभी फ़ाइलों के मालिक और स्वामित्व वाले समूह को भी पुनर्स्थापित किया जाता है। इस विकल्प को '--test' को छोड़कर अन्य विकल्पों के साथ मिश्रित नहीं किया जा सकता है।

--परीक्षा

परीक्षण विधि। किसी भी फाइल के एसीएल को बदलने के बजाय, परिणामी एसीएल सूचीबद्ध हैं।

-आर, --recursive

सभी फ़ाइलों और निर्देशिकाओं को आवर्ती रूप से संचालन लागू करें। इस विकल्प को '--restore' के साथ मिश्रित नहीं किया जा सकता है।

-एल, --logical

तार्किक चलना, प्रतीकात्मक लिंक का पालन करें। डिफ़ॉल्ट व्यवहार प्रतीकात्मक लिंक तर्कों का पालन करना है, और उपनिर्देशिका में सामने आने वाले प्रतीकात्मक लिंक छोड़ना है। इस विकल्प को '--restore' के साथ मिश्रित नहीं किया जा सकता है।

-पी, - भौतिक

शारीरिक चलना, सभी प्रतीकात्मक लिंक छोड़ें। यह प्रतीकात्मक लिंक तर्क भी छोड़ देता है। इस विकल्प को '--restore' के साथ मिश्रित नहीं किया जा सकता है।

--version

Setfacl के संस्करण मुद्रित करें और बाहर निकलें।

--मदद

कमांड लाइन विकल्पों को समझाते हुए प्रिंट प्रिंट करें।

कमांड लाइन विकल्पों का अंत। सभी शेष पैरामीटर को फाइल नामों के रूप में व्याख्या किया जाता है, भले ही वे डैश से शुरू होते हैं।

यदि फ़ाइल नाम पैरामीटर एक एकल डैश है, तो setfacl मानक इनपुट से फ़ाइलों की एक सूची पढ़ता है।

एसीएल प्रवेश

Setfacl उपयोगिता निम्नलिखित एसीएल प्रविष्टि प्रारूपों (स्पष्टता के लिए डाले गए रिक्त स्थान) को पहचानती है:

[डी [efault]:] [यू [सेवा]:] uid [: परमिट ]

एक नामित उपयोगकर्ता की अनुमतियां। यदि यूआईडी खाली है तो फ़ाइल मालिक की अनुमतियां।

[डी [efault]:] जी [रप]: ग्रिड [: परमिट ]

एक नामित समूह की अनुमतियां। यदि ग्रिड खाली है तो मालिक समूह की अनुमतियां।

[डी [efault]:] एम [पूछो] [:] [: परमिट ]

प्रभावी अधिकार मुखौटा

[डी [efault]:] ओ [थर्म] [:] [: परमिट ]

दूसरों की अनुमतियां।

डेलीमीटर वर्णों और गैर-डेलीमीटर वर्णों के बीच व्हाइटस्पेस को अनदेखा किया जाता है।

अनुमतियों सहित उचित एसीएल प्रविष्टियों का उपयोग संशोधित और सेट ऑपरेशंस में किया जाता है। (विकल्प -एम , -एम , --सेट और --सेट फ़ाइल )। परमिट फ़ील्ड के बिना प्रविष्टियों का उपयोग प्रविष्टियों को हटाने के लिए किया जाता है (विकल्प -x और -X )।

यूआईडी और ग्रिड के लिए आप या तो नाम या संख्या निर्दिष्ट कर सकते हैं।

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

स्वचालित रूप से निर्मित प्रविष्टियां

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

*

तीन आधार प्रविष्टियों को हटाया नहीं जा सकता है। इन बेस एंट्री प्रकारों में से प्रत्येक का बिल्कुल एक प्रविष्टि होना चाहिए।

*

जब भी एसीएल में उपयोगकर्ता प्रविष्टियों या नामित समूह वस्तुओं का नाम होता है, तो इसमें एक प्रभावी अधिकार मास्क भी होना चाहिए।

*

जब भी एसीएल में कोई डिफ़ॉल्ट एसीएल प्रविष्टियां होती हैं, तो तीन डिफ़ॉल्ट एसीएल बेस प्रविष्टियां (डिफ़ॉल्ट मालिक, डिफ़ॉल्ट समूह और डिफ़ॉल्ट अन्य) भी मौजूद होना चाहिए।

*

जब भी एक डिफ़ॉल्ट एसीएल में उपयोगकर्ता प्रविष्टियों या नामित समूह ऑब्जेक्ट्स शामिल होते हैं, तो इसमें एक डिफ़ॉल्ट प्रभावी अधिकार मास्क भी होना चाहिए।

उपयोगकर्ता को इन नियमों को सुनिश्चित करने में सहायता के लिए, setfacl निम्न स्थितियों के तहत मौजूदा प्रविष्टियों से प्रविष्टियां बनाता है:

*

यदि किसी एसीएल में उपयोगकर्ता नाम या समूह समूह प्रविष्टियां शामिल हैं, और कोई मुखौटा प्रविष्टि मौजूद नहीं है, तो समूह प्रविष्टि के समान अनुमतियों वाली एक मुखौटा प्रविष्टि बनाई गई है। जब तक विकल्प नहीं दिया जाता है, मास्क एंट्री द्वारा प्रभावित सभी अनुमतियों के संघ को शामिल करने के लिए मास्क एंट्री की अनुमतियां और समायोजित की जाती हैं। ( -एन विकल्प विवरण देखें)।

*

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

*

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

उदाहरण

एक अतिरिक्त उपयोगकर्ता पढ़ने की पहुंच प्रदान करना

setfacl -mu: लिसा: आर फाइल

सभी समूहों और सभी नामित उपयोगकर्ताओं (प्रभावी अधिकार मास्क का उपयोग करके) से लेखन पहुंच को रद्द करना

setfacl -mm :: आरएक्स फ़ाइल

फ़ाइल के एसीएल से नामित समूह प्रविष्टि को हटा रहा है

setfacl -xg: स्टाफ फ़ाइल

एक फ़ाइल के एसीएल को दूसरे में कॉपी करना

getfacl फ़ाइल 1 | setfacl --set-file = - file2

एसीएल को डिफ़ॉल्ट एसीएल में एक्सेस करना

getfacl -a dir | setfacl -d -M-dir

POSIX 1003.1e ड्राफ्ट मानक 17 के लिए अनुकूलन

यदि पर्यावरण परिवर्तनीय POSIXLY_CORRECT परिभाषित किया गया है, तो setfacl का डिफ़ॉल्ट व्यवहार निम्नानुसार बदलता है: सभी गैर-मानक विकल्प अक्षम हैं। `` डिफ़ॉल्ट: '' उपसर्ग अक्षम है। -x और -X विकल्प भी अनुमति फ़ील्ड स्वीकार करते हैं (और उन्हें अनदेखा करते हैं)।

यह भी देखें

उमास्क (1)