मैं एक मैक पर chmod का उपयोग कैसे करूं नई फाइल बनाने के लिए मूल निर्देशिका अनुमतियाँ वारिस करें?


23

मैं मैक पर हूँ। मैं इसे बनाना चाहता हूं ताकि किसी भी नई फाइल / फोल्डर जो एक विशिष्ट फ़ोल्डर के भीतर बनते हैं, उनके पास एक ही अनुमतियाँ हैं (समूह नहीं, जो पहले से ही ध्यान रखा गया है) मूल निर्देशिका के रूप में। लिनक्स पर, मैं आम तौर पर सेटफैक्ल का उपयोग करता हूं, लेकिन ऐसा लगता है कि मैक पर चामॉड ऐसा हो सकता है जो मैं देख रहा हूं। मैंने मैन पेज के लिए चामोद के माध्यम से पढ़ा है, लेकिन मैं अभी भी समझ नहीं पा रहा हूं कि मैं जो चाहता हूं उसे पाने के लिए कैसे ठीक से कमांड कर सकता हूं।


मैं चाहता हूं कि नई फाइलें / फ़ोल्डर समूह पठनीय और लिखने योग्य हों।

जवाबों:


33

सबसे पहले, यह बताने के लिए पृष्ठभूमि की एक बिट: ओएस एक्स में फाइलें दो अलग-अलग प्रकार की अनुमति सेटिंग्स उन पर लागू हो सकती हैं: पोसिक्स और एसीएल।

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

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

OS X पर chmod +-in, -a आदि अनुमतियों के विकल्प के साथ ACEs में हेरफेर कर सकता है। यदि मुझे समझ में आ जाए कि आप क्या चाहते हैं, तो आप ACE बनाने के लिए (अपने समूह नाम और फ़ोल्डर पथ के साथ) का उपयोग करेंगे:

chmod +a "group:examplegroup allow list,add_file,search,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" /path/to/folder

ध्यान दें कि वंशानुक्रम "लाइव" नहीं है, अर्थात यह एसीई को सौंपे जाने से पहले बनाई गई वस्तुओं पर लागू नहीं होता है, और यह कहीं और बनाई गई वस्तुओं पर लागू नहीं होता है और फिर फ़ोल्डर में चला जाता है। आप इसे -R ( chmod -R +a ...) का उपयोग करके मौजूदा सामग्री पर लागू कर सकते हैं । मुझे एक तरीका नहीं पता है (Apple के सर्वर व्यवस्थापक टूल को छोड़कर) जो फ़ोल्डर में चले गए आइटमों के उत्तराधिकार को बाध्य करता है।


महान व्याख्या के लिए धन्यवाद। मैंने इसे अभी भी आज़माया है और यह अभी भी उपयोगकर्ता द्वारा पठन / लेखन के साथ एक नई फ़ाइल बनाता है, बाकी सभी ने अनुमतियाँ पढ़ी हैं। मूल फ़ोल्डर (बाहर) स्वामी के रूप में 775 अनुमतियों के साथ सेट किया गया है (स्वामी) समूह के रूप में स्वामी और _www। मैंने स्वयं को _www समूह में जोड़ा है। drwxrwxr-x + 13 jhicks _www 442B Nov 16 09:47 सड़क पर मैं आपके आदेश को इस प्रकार चलाता हूं: chmod + a "group: _www allow list, add_file, search, add_subdirectory, delete_child, readattr, writeattr, readextattr, Wrextattrr, readsecurity, शुद्धता directory_inherit "आउटडोर
जेरेमी हिक्स

ls -lकेवल POSIX अनुमतियाँ दिखाता है (हालाँकि "+" अनुमति के बाद इंगित करता है कि ACL मौजूद है)। ls -leएसीएल दिखाने के लिए भी उपयोग करें ।
गॉर्डन डेविसन

यदि समूहनाम में स्थान है, तो आप इसका उपयोग कर सकते हैं: परिसीमनक के रूप में। उदाहरण के लिए, "समूह: एक अंतरिक्ष के साथ मेरा समूह: अनुमति दें"
डग रिचर्डसन

chmod +a ...कमांड का पालन ​​किया , फिर मैंने फ़ोल्डर में एक abc.txt बनाया । किसी अन्य उपयोगकर्ता पर स्विच किया गया और टेक्स्टएडिट के साथ संपादित किया गया, फ़ाइल को लॉक किया गया है और संपादन योग्य नहीं है।
ओहो

मैं इसके साथ कुछ खेल कर रहा हूं मुझे लगता है कि आप विरासत को + एआई के साथ मजबूर करते हैं
रॉबिन

4

-R@ Gordon के कमांड में जोड़ने का प्रयास करें , जैसे:

chmod -R +a "group:_www allow list,add_file,search,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" outdoors

-Rविकल्प इच्छा (उल्लेख किया यहाँ ):

पुनर्खरीद: केवल फ़ाइल के बजाय फ़ाइलों में निहित फ़ाइल पदानुक्रमों के मोड को बदलें।

फ़ाइल पदानुक्रमों को बदलने से लगता है कि आप क्या खोज रहे हैं (नई फ़ाइलों, निर्देशिकाओं आदि के लिए)।

आप इस Apple.SE पोस्ट को भी देख सकते हैं , जो कुछ हद तक आपकी (एक साझा निर्देशिका से संबंधित को छोड़कर) स्थिति को कवर करती है, जिसके sudoलिए मोर्चे पर एक समझौते की आवश्यकता होती है ।


4

यह (-आर) वह नहीं है जो अधिकांश लोग करना चाहते हैं; अधिकांश समय वे ACL को सबसे ऊपरी निर्देशिका में बदलना पसंद करेंगे और सभी जादुई वस्तुओं को ACL के अनुसार उन झंडों को विरासत में लाने के लिए कुछ जादुई करने के लिए मजबूर करेंगे जो वे उस उप-वृक्ष की जड़ पर निर्दिष्ट करते हैं। यह बहुत अधिक सुरुचिपूर्ण है क्योंकि वस्तुओं पर ACL इन विरासत वाले ACE को नीति के अनुसार क्रमबद्ध करेगा।

और हां, मुझे ऐसा करने के लिए एक अजगर स्क्रिप्ट लिखनी थी, मुझे कुछ भी उपयुक्त नहीं लगा।


2
क्या आप साझा करने के लिए परवाह करते हैं (जैसे एक जिस्ट पर ? अगर आपको कोई आपत्ति नहीं है, तो मुझे लगता है कि यह एक अच्छा इशारा था।
myhd


0

PathFinder का उपयोग करके Mac पर , यह ACL और POSIX सेट करना आसान बनाता है। यदि आप एक मैक सर्वर पर वर्डप्रेस की मेजबानी कर रहे हैं, तो आपको define('FS_METHOD', 'direct');wp-config.php में भी सेट करना होगा ताकि प्लगइन्स को स्थापित करना और अपग्रेड करना आपको एफ़टीपी विवरण के लिए नहीं पूछेगा।

तो मूल रूप से आप डिफ़ॉल्ट POSIX अनुमतियाँ रखते हैं, और AC के लिए उपयोगकर्ता _www (नहीं समूह) जोड़ते हैं, फिर ACL विंडो में प्रचार अनुमति क्लिक करें।

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